Informationen zu Hot Key-Steuerelementen
Ein Tastenkombinationssteuerelement ist ein Fenster, in dem der Benutzer eine Kombination von Tastenanschlägen eingeben kann, die als Tastenkombination verwendet werden sollen. Eine Tastenkombination ist eine Tastenkombination, die der Benutzer drücken kann, um schnell eine Aktion auszuführen. Beispielsweise kann ein Benutzer einen Hot Key erstellen, der ein bestimmtes Fenster aktiviert und an den Anfang der Z-Reihenfolge bringt. Das Tastenkombinationssteuerelement zeigt die Auswahlmöglichkeiten des Benutzers an und stellt sicher, dass der Benutzer eine gültige Tastenkombination auswählt. Der folgende Screenshot zeigt, wie ein Tastenkombinationssteuerelement in einem Dialogfeld angezeigt wird, nachdem der Benutzer die ALT-TASTE gedrückt hat.
Verwenden von Hot Key-Steuerelementen
Wenn der Benutzer eine Tastenkombination eingibt, die als Schlüsseltaste verwendet werden soll, werden die Namen der Schlüssel im Tastenkombinationssteuerelement angezeigt. Eine Tastenkombination kann aus einer Modifizierertaste (z. B. STRG, ALT oder UMSCHALT) und einer zugehörigen Taste (z. B. einer Zeichentaste, einer Pfeiltaste, einer Funktionstaste usw.) bestehen.
Nachdem der Benutzer eine Tastenkombination ausgewählt hat, ruft die Anwendung die Tastenkombination aus der Tastensteuerung ab und verwendet sie, um eine Tastenkombination im System einzurichten. Die informationen, die vom Hot key-Steuerelement abgerufen werden, umfassen ein Flag, das den Modifiziererschlüssel und den virtuellen Schlüsselcode des zugehörigen Schlüssels angibt.
Die Anwendung kann die von einem Hot key-Steuerelement bereitgestellten Informationen verwenden, um einen globalen Hot Key oder einen threadspezifischen Hot Key einzurichten. Ein globaler Schlüssel ist einem bestimmten Fenster zugeordnet. Es ermöglicht dem Benutzer, das Fenster aus einem beliebigen Teil des Systems zu aktivieren. Eine Anwendung legt mithilfe der WM_SETHOTKEY Meldung einen globalen Hot Key fest. Wenn der Benutzer eine globale Tastenkombination drückt, erhält das in WM_SETHOTKEY angegebene Fenster eine WM_SYSCOMMAND Meldung, die den SC_HOTKEY Wert angibt. Diese Meldung aktiviert das Fenster, das sie empfängt. Der Schlüssel bleibt gültig, bis die Anwendung, die WM_SETHOTKEY aufgerufen hat, beendet wird.
Ein threadspezifischer Hot Key generiert eine WM_HOTKEY Nachricht, die am Anfang eines bestimmten Threads gepostet wird, sodass sie von der nächsten Iteration der Nachrichtenschleife entfernt wird. Eine Anwendung legt mithilfe der RegisterHotKey-Funktion einen threadspezifischen Hot key fest.
Hot Key-Steuerungsmeldungen
Nach dem Erstellen eines Hot key-Steuerelements interagiert eine Anwendung mit diesem Steuerelement, indem sie drei Nachrichten verwendet: HKM_SETRULES, HKM_SETHOTKEY und HKM_GETHOTKEY.
Eine Anwendung kann die HKM_SETRULES-Nachricht senden, um eine Reihe von Tastenkombinationen strg, ALT und UMSCHALT anzugeben, die als ungültige Tastenkombinationen gelten. Wenn die Anwendung eine ungültige Tastenkombination angibt, sollte sie auch eine Standardmodifiziererkombination angeben, die verwendet werden soll, wenn der Benutzer die ungültige Kombination auswählt. Wenn der Benutzer die ungültige Kombination eingibt, führt das System einen logischen OR-Vorgang für die ungültige Kombination und die Standardkombination aus. Das Ergebnis wird als gültige Kombination betrachtet; Sie wird in eine Zeichenfolge konvertiert und im -Steuerelement angezeigt.
Die HKM_SETHOTKEY Meldung ermöglicht es einer Anwendung, die Tastenkombination für ein Tastensteuerungssteuerelement festzulegen. Diese Meldung wird in der Regel auch verwendet, wenn das Hot Key-Steuerelement erstellt wird.
Anwendungen verwenden die HKM_GETHOTKEY-Nachricht , um den Virtuellen Schlüsselcode und die Modifiziererflags des vom Benutzer ausgewählten Hot key abzurufen.
Hot Key-Steuerungsbenachrichtigungen
Das Hot key-Steuerelement sendet keine Benachrichtigungscodes über die WM_NOTIFY Nachricht. Es sendet jedoch die EN_CHANGE-Benachrichtigung über die WM_COMMAND Nachricht, wenn der Benutzer den Inhalt des Steuerelements ändert.
Standardmäßige Verarbeitung von Hot Key-Nachrichten
In diesem Abschnitt werden die Fenstermeldungen beschrieben, die von der Fensterprozedur für die vordefinierte HOTKEY_CLASS Fensterklasse verarbeitet werden, die mit Hot key-Steuerelementen verwendet wird.
Nachricht | Durchgeführte Verarbeitung |
---|---|
WM_CHAR | Ruft den Code des virtuellen Schlüssels ab. |
WM_CREATE | Initialisiert das Tastensteuerungssteuerelement, löscht alle Hot Key-Regeln und verwendet die Systemschriftart. |
WM_ERASEBKGND | Blendet das Caret aus, ruft die DefWindowProc-Funktion auf und zeigt das Caretzeichen erneut an. |
WM_GETDLGCODE | Gibt eine Kombination aus den DLGC_WANTCHARS - und DLGC_WANTARROWS-Werten zurück. |
WM_GETFONT | Ruft die Schriftart ab. |
WM_KEYDOWN | Ruft die DefWindowProc-Funktion auf, wenn die Taste ENTER, TAB, LEERTASTE, ENTF, ESC oder BACKSPACE lautet. Wenn die Taste UMSCHALT, STRG oder ALT ist, wird überprüft, ob die Kombination gültig ist, und legt, wenn dies der Wert ist, die Tastenkombination fest. Alle anderen Schlüssel werden als Hot keys festgelegt, ohne dass zuerst ihre Gültigkeit überprüft wird. |
WM_KEYUP | Ruft den Code des virtuellen Schlüssels ab. |
WM_KILLFOCUS | Zerstört das Caretzeichen. |
WM_LBUTTONDOWN | Legt den Fokus auf das Fenster fest. |
WM_NCCREATE | Legt das WS_EX_CLIENTEDGE-Fensterformat fest. |
WM_PAINT | Zeichnet das Tastenkombinationssteuerelement. |
WM_SETFOCUS | Erstellt das Caretzeichen und zeigt es an. |
WM_SETFONT | Legt die Schriftart fest. |
WM_SYSCHAR | Ruft den Code des virtuellen Schlüssels ab. |
WM_SYSKEYDOWN | Ruft die DefWindowProc-Funktion auf, wenn die Taste ENTER, TAB, LEERTASTE, ENTF, ESC oder BACKSPACE lautet. Wenn die Taste UMSCHALT, STRG oder ALT ist, wird überprüft, ob die Kombination gültig ist, und legt, wenn dies der Wert ist, die Tastenkombination fest. Alle anderen Schlüssel werden als Hot keys festgelegt, ohne dass zuerst ihre Gültigkeit überprüft wird. |
WM_SYSKEYUP | Ruft den Code des virtuellen Schlüssels ab. |