Přizpůsobení myši a klávesnice
MFC umožňuje uživateli aplikace přizpůsobit jak zpracovává klávesnice a myši.Uživatel může přizpůsobit vstup z klávesnice přiřazením klávesové zkratky příkazů.Uživatele můžete také upravit vstupní myši výběrem příkazu, který má být spuštěn, když uživatel poklepe uvnitř určitého systému windows aplikace.Toto téma vysvětluje, jak přizpůsobit vstup pro vaše aplikace.
V vlastní dialogové okno, uživatel může změnit vlastní ovládací prvky pro myši a klávesnice.Chcete-li zobrazit toto dialogové okno odkazuje uživatele na vlastní na zobrazení nabídky a potom klepne na možnost panely nástrojů a Docking.V dialogovém okně uživatel klepne buď klávesnice kartě nebo myši kartu.
Úprava klávesnice
Následující obrázek ukazuje klávesnice kartě vlastní dialogové okno.
Karta úprav klávesnice
Interakci uživatele s přiřadit jeden nebo více klávesové zkratky k příkazu na kartě klávesnice.Na levé straně na kartě jsou uvedeny příkazy k dispozici.Uživatel může vybrat libovolný dostupný příkaz z nabídky.Pouze příkazy nabídek může být přiřazena klávesová zkratka.Poté, co uživatel zadá novou zkratku přiřadit aktivuje tlačítko.Po klepnutí na toto tlačítko, přiřadí aplikace tohoto zástupce vybraného příkazu.
V rozevíracím seznamu v pravém sloupci jsou uvedeny všechny aktuálně přiřazené klávesové zkratky.Uživatel může také vybrat jednotlivé klávesové zkratky a odstranit nebo obnovit mapování aplikace.
Pokud chcete toto přizpůsobení odborné pomoci ve vaší aplikaci, musíte vytvořit CKeyboardManager objektu.Vytvoření CKeyboardManager objekt, volání funkce CWinAppEx::InitKeyboardManager.Tato metoda vytvoří a inicializuje správce klávesnice.Pokud vytvoříte klávesnice správce ručně, je stále třeba zavolat CWinAppEx::InitKeyboardManager k jeho inicializaci.
Pokud pomocí průvodce vytvořit aplikaci, bude Průvodce inicializovat správce klávesnice.Po inicializaci aplikace Správce klávesnice, rámci přidá klávesnice kartě přizpůsobení dialogové okno.
Vlastní nastavení myši
Následující ilustrace ukazuje myši kartě vlastní dialogové okno.
Karta úprav myši
Interakci uživatele s tuto kartu přiřadit nabídku příkazu myši poklepejte na akci.Uživatel vybere z levé strany okna zobrazení a potom použije příkaz přidružit akce poklepejte na ovládací prvky na pravé straně.Poté, co uživatel klepne na Zavřít, aplikace se spustí přidružený příkaz vždy, když uživatel poklepe kdekoli v zobrazení.
Při vytváření aplikace pomocí průvodce není vlastní nastavení myši ve výchozím nastavení povoleno.
Povolit vlastní nastavení myši
Inicializovat CMouseManager voláním objektu CWinAppEx::InitMouseManager.
Ukazatel myši správci získat pomocí CWinAppEx::GetMouseManager.
Přidat zobrazení pomocí myši správce CMouseManager::AddView metoda.Proveďte pro každé zobrazení, které chcete přidat do správce myši.
Po inicializaci aplikace mouse manager, přidá rámci myši kartě vlastní dialogové okno.Pokud nepřidáte všechna zobrazení, na kartě způsobí Neošetřená výjimka.Po vytvoření seznamu zobrazení, myši karta je uživateli k dispozici.
Když přidáte nové zobrazení mouse manager, můžete jí jedinečný identifikátor.Pokud chcete podporovat vlastní nastavení myši pro okno, je nutné zpracovat WM_LBUTTONDBLCLICK zprávy a volání CWinAppEx::OnViewDoubleClick funkce.Při volání této funkce je jeden z parametrů ID pro okno.Je odpovědnost programátor ke sledování čísel ID a objekty spojené s nimi.
Otázky zabezpečení
Jak je popsáno v Uživatelem definované nástroje, uživatel můžete přidružit nástroje uživatelské ID události poklepání.Při poklepání zobrazení aplikace vyhledá uživatele nástroj, který odpovídá související IDPokud aplikace najde odpovídající nástroj, provede nástroj.Pokud aplikace nemůže najít odpovídající nástroj, odešle zprávu s ID WM_COMMAND zobrazení poklepání.
Vlastní nastavení jsou uloženy v registru.Úpravou registru útočníkovi nahradit platný identifikační nástroj libovolný příkaz.Když uživatel poklepe zobrazení, zobrazení zpracovává příkaz, který útočník vysazeny.To může způsobit neočekávané a potenciálně nebezpečné chování.
Navíc tento druh útoku obejít zabezpečení uživatelského rozhraní.Například Předpokládejme, že má aplikace tisk je zakázán.Je v uživatelském rozhraní, Tisk nabídky a tlačítka k dispozici.Obvykle zabrání aplikaci z tisku.Ale pokud útočník upravovat registr, uživatel může nyní mohl odeslat příkaz pro tisk přímo poklepáním na zobrazení vynechání prvky uživatelského rozhraní, které jsou k dispozici.
Chcete-li chránit před tímto typem útoku přidejte obslužné vaše aplikace příkaz Ověřit platnost příkazu před je spuštěn kód.Nezávisí na uživatelském rozhraní příkaz zabránit odeslání do aplikace.