Sdílet prostřednictvím


Přizpůsobení klávesnice a myši

MFC umožňuje uživateli vaší aplikace přizpůsobit, jak zpracovává vstup klávesnice a myši. Uživatel může přizpůsobit vstup pomocí klávesnice přiřazením klávesových zkratek k příkazům. Uživatel může také přizpůsobit vstup myši tak, že vybere příkaz, který se má spustit, když uživatel pokliká uvnitř konkrétních oken aplikace. Toto téma vysvětluje, jak přizpůsobit vstup pro vaši aplikaci.

V dialogovém okně Vlastní nastavení může uživatel změnit vlastní ovládací prvky myši a klávesnice. Chcete-li zobrazit toto dialogové okno, uživatel přejde na příkaz Přizpůsobit v nabídce Zobrazení a potom klikne na panely nástrojů a dokování. V dialogovém okně uživatel klikne na kartu Klávesnice nebo myš.

Přizpůsobení klávesnice

Následující obrázek znázorňuje kartu Klávesnice dialogového okna Vlastní nastavení .

Keyboard tab in the Customize dialog box.
Karta Přizpůsobení klávesnice

Uživatel pracuje s kartou klávesnice, aby k příkazu přiřadil jednu nebo více klávesových zkratek. Dostupné příkazy jsou uvedeny na levé straně karty. Uživatel může v nabídce vybrat libovolný dostupný příkaz. K klávesové zkratce je možné přidružit pouze příkazy nabídky. Jakmile uživatel zadá novou klávesovou zkratku , aktivuje se tlačítko Přiřadit . Když uživatel klikne na toto tlačítko, aplikace k tomuto zástupci přidruží vybraný příkaz.

Všechny aktuálně přiřazené klávesové zkratky jsou uvedené v seznamu v pravém sloupci. Uživatel může také vybrat jednotlivé klávesové zkratky a odebrat je nebo obnovit všechna mapování pro aplikaci.

Pokud chcete tuto vlastní nastavení podporovat ve své aplikaci, musíte vytvořit objekt CKeyboardManager . Chcete-li vytvořit CKeyboardManager objekt, zavolejte funkci CWinAppEx::InitKeyboardManager. Tato metoda vytvoří a inicializuje správce klávesnice. Pokud vytváříte správce klávesnice ručně, musíte ho přesto volat CWinAppEx::InitKeyboardManager , abyste ho inicializovali.

Pokud k vytvoření aplikace použijete Průvodce, průvodce inicializuje správce klávesnice. Jakmile aplikace inicializuje správce klávesnice, architektura přidá do dialogového okna Přizpůsobení kartu Klávesnice.

Přizpůsobení myši

Následující obrázek znázorňuje kartu Myš dialogového okna Vlastní nastavení .

Mouse tab in the Customize dialog box.
Karta Přizpůsobení myši

Uživatel s touto kartou pracuje, aby k akci poklikání myši přiřadil příkaz nabídky. Uživatel vybere zobrazení z levé strany okna a potom pomocí ovládacích prvků na pravé straně přidruží příkaz k akci poklikání. Jakmile uživatel klikne na Tlačítko Zavřít, aplikace spustí přidružený příkaz pokaždé, když uživatel pokliká kdekoli v zobrazení.

Ve výchozím nastavení není přizpůsobení myši při vytváření aplikace pomocí Průvodce povoleno.

Povolení přizpůsobení myši

  1. Inicializace CMouseManager objekt volání CWinAppEx::InitMouseManager.

  2. Získejte ukazatel na správce myši pomocí CWinAppEx::GetMouseManager.

  3. Pomocí metody CMouseManager::AddView přidejte zobrazení do správce myši. Udělejte to pro každé zobrazení, které chcete přidat do správce myši.

Jakmile aplikace inicializuje správce myši, architektura přidá kartu Myš do dialogového okna Přizpůsobit . Pokud nepřidáte žádná zobrazení, přístup k kartě způsobí neošetřenou výjimku. Po vytvoření seznamu zobrazení je pro uživatele dostupná karta Myš .

Když do správce myši přidáte nové zobrazení, dáte mu jedinečné ID. Pokud chcete podporovat přizpůsobení myši pro okno, musíte zpracovat WM_LBUTTONDBLCLICK zprávu a volat CWinAppEx::OnViewDoubleClick funkce. Při volání této funkce je jedním z parametrů ID pro toto okno. Je zodpovědností programátora sledovat čísla ID a objekty přidružené k nim.

Aspekty zabezpečení

Jak je popsáno v nástrojích definovaných uživatelem, může uživatel přidružit ID nástroje definované uživatelem k události poklikání. Když uživatel dvakrát klikne na zobrazení, aplikace hledá nástroj uživatele, který odpovídá přidruženému ID. Pokud aplikace najde odpovídající nástroj, spustí ho. Pokud aplikace nemůže najít odpovídající nástroj, odešle WM_COMMAND zprávu s ID do zobrazení, které bylo dvakrát kliknuto.

Přizpůsobená nastavení jsou uložena v registru. Úpravou registru může útočník nahradit platné ID nástroje uživatele libovolným příkazem. Když uživatel pokliká na zobrazení, zpracuje zobrazení příkaz, který útočník zasadil. To může způsobit neočekávané a potenciálně nebezpečné chování.

Kromě toho může tento druh útoku obejít ochranu uživatelského rozhraní. Předpokládejme například, že aplikace je zakázána. To znamená, že v uživatelském rozhraní není k dispozici nabídka Tisk a tlačítko. Za normálních okolností to brání tisku aplikace. Pokud ale útočník registr upravil, mohl by teď uživatel odeslat příkaz tisku přímo poklikáním na zobrazení a obejít prvky uživatelského rozhraní, které nejsou k dispozici.

Pokud chcete chránit před tímto druhem útoku, přidejte do obslužné rutiny příkazu aplikace kód, který ověří platnost příkazu před jeho spuštěním. Nezávisejte na uživatelském rozhraní, aby se zabránilo odeslání příkazu do aplikace.

Viz také

Přizpůsobení pro prostředí MFC
CKeyboardManager – třída
CMouseManager – třída
Vliv přizpůsobení na zabezpečení