Sdílet prostřednictvím


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.

snímek obrazovky dialogového okna, které obsahuje ovládací prvek s klávesovou zkratkou

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.