Informace o ovládacích prvcích klávesových zkratek
Ovládací prvek klávesové zkratky je okno, které uživateli umožňuje zadat kombinaci stisknutí kláves, které se mají použít jako klávesová zkratka. Klávesová zkratka je kombinace kláves, kterou může uživatel stisknout a rychle provést akci. Uživatel může například vytvořit klávesovou zkratku, která aktivuje dané okno a přenese ho na začátek pořadí vykreslování. Ovládací prvek klávesové zkratky zobrazí volby uživatele a zajistí, že uživatel vybere platnou kombinaci kláves. Následující snímek obrazovky ukazuje, jak se ovládací prvek klávesové zkratky zobrazí v dialogovém okně poté, co uživatel stiskne klávesu Alt.
Použití ovládacích prvků klávesových zkratek
Když uživatel zadá kombinaci kláves, která se má použít jako klávesová zkratka, zobrazí se názvy kláves v ovládacím prvku klávesová zkratka. Kombinace kláves se může skládat z modifikační klávesy (například CTRL, ALT nebo SHIFT) a doprovodné klávesy (například znaková klávesa, klávesa se šipkou, funkční klávesa atd.).
Jakmile uživatel zvolí kombinaci kláves, aplikace načte kombinaci kláves z ovládacího prvku pro klávesové zkratky a použije ji k nastavení klávesové zkratky v systému. Informace získané z ovládacího prvku hot key zahrnují příznak označující modifikační klíč a kód virtuálního klíče doprovodného klíče.
Aplikace může použít informace, které poskytuje ovládací prvek klávesové zkratky k nastavení globálního horkého klíče nebo klávesové zkratky specifické pro vlákno. Globální klávesová zkratka je přidružena k určitému oknu; umožňuje uživateli aktivovat okno z libovolné části systému. Aplikace nastaví globální klávesovou zkratku pomocí zprávy WM_SETHOTKEY. Pokaždé, když uživatel stiskne globální klávesovou zkratku, okno zadané v WM_SETHOTKEY obdrží WM_SYSCOMMAND zprávu, která určuje hodnotu SC_HOTKEY. Tato zpráva aktivuje okno, které ho obdrží. Horká klávesa zůstane platná, dokud aplikace, která volala WM_SETHOTKEY, se neukončí.
Horký klíč specifický pro vlákno vygeneruje WM_HOTKEY zprávu, která se odešle na začátku zadaného vlákna, aby byla odebrána další iterací smyčky zpráv. Aplikace nastaví klávesovou zkratku specifickou pro vlákno pomocí funkce RegisterHotKey.
Ovládací zprávy pro klávesové zkratky
Po vytvoření ovládacího prvku klávesová zkratka s ním aplikace komunikuje pomocí tří zpráv: HKM_SETRULES, HKM_SETHOTKEYa HKM_GETHOTKEY.
Aplikace může odeslat HKM_SETRULES zprávu, aby určila sadu kombinací kláves CTRL, ALT a SHIFT, které jsou považovány za neplatné klávesové zkratky. Pokud aplikace určuje neplatnou kombinaci kláves, měla by také zadat výchozí modifikační kombinaci, která se má použít, když uživatel vybere neplatnou kombinaci. Když uživatel zadá neplatnou kombinaci, systém provede logickou operaci OR s neplatnou kombinací a výchozí kombinací. Výsledek je považován za platnou kombinaci; převede se na řetězec a zobrazí se v ovládacím prvku.
Zpráva HKM_SETHOTKEY umožňuje aplikaci nastavit kombinaci klávesových zkratek pro ovládací prvek s klávesovou zkratkou. Tato zpráva se obvykle používá také při vytvoření ovládacího prvku rychlé klávesy.
Aplikace používají zprávu HKM_GETHOTKEY k načtení kódu virtuálního klíče a modifikačních příznaků klávesové zkratky zvolené uživatelem.
Oznámení o ovládacím prvku klávesová zkratka
Ovládací prvek klávesové zkratky neodesílá prostřednictvím zprávy WM_NOTIFY žádné kódy oznámení. Odešle však oznámení EN_CHANGE prostřednictvím zprávy WM_COMMAND, když uživatel změní obsah ovládacího prvku.
Výchozí zpracování zpráv klávesových zkratek
Tato část popisuje systémové zprávy zpracovávané procedurou okna pro předdefinovanou HOTKEY_CLASS třídu okna použitou s ovládacími prvky s klávesovými zkratkami.
Zpráva | Provedené zpracování |
---|---|
WM_CHAR | Načte kód virtuálního klíče. |
WM_CREATE | Inicializuje ovládání klávesových zkratek, odstraní všechny pravidla klávesových zkratek a použije systémové písmo. |
WM_ERASEBKGND | Skryje stříšku, zavolá funkci DefWindowProc a znovu zobrazí stříšku. |
WM_GETDLGCODE | Vrátí kombinaci hodnot DLGC_WANTCHARS a DLGC_WANTARROWS. |
WM_GETFONT | Načte písmo. |
WM_KEYDOWN | Zavolá funkci DefWindowProc, pokud je klávesa ENTER, TAB, MEZERNÍK, DEL, ESC nebo BACKSPACE. Pokud je klávesa SHIFT, CTRL nebo ALT, zkontroluje, jestli je kombinace platná, a pokud ano, nastaví klávesovou zkratku pomocí kombinace. Všechny ostatní klávesy jsou nastavené jako klávesové zkratky, aniž by se nejdřív kontrolovala jejich platnost. |
WM_KEYUP | Načte kód virtuálního klíče. |
WM_KILLFOCUS | Zničí kurzor. |
WM_LBUTTONDOWN | Nastaví fokus na okno. |
WM_NCCREATE | Nastaví styl okna WS_EX_CLIENTEDGE. |
WM_PAINT | Nakreslí ovládací prvek klávesy. |
WM_SETFOCUS | Vytvoří a zobrazí stříšku. |
WM_SETFONT | Nastaví písmo. |
WM_SYSCHAR | Načte kód virtuálního klíče. |
WM_SYSKEYDOWN | Zavolá funkci DefWindowProc, pokud je klávesa ENTER, TAB, MEZERNÍK, DEL, ESC nebo BACKSPACE. Pokud je klávesa SHIFT, CTRL nebo ALT, zkontroluje, jestli je kombinace platná, a pokud ano, nastaví klávesovou zkratku pomocí kombinace. Všechny ostatní klávesy jsou nastavené jako klávesové zkratky, aniž by se nejdřív kontrolovala jejich platnost. |
WM_SYSKEYUP | Načte kód virtuálního klíče. |