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.

Screenshot eines Dialogfelds, das ein Tastenkombinationssteuerelement enthält

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.