TranslateAccelerator

Die TranslateAccelerator -Funktion verarbeitet Zugriffstasten für Menübefehle. Die Funktion wandelt eine WM_KEYDOWN oder WM_SYSKEYDOWN -Meldung eine WM_COMMAND oder WM_SYSCOMMAND -Nachricht (falls ein Eintrag für den Schlüssel in der angegebenen Zugriffstastentabelle vorhanden ist) und dann sendet die WM_COMMAND oder WM_SYSCOMMAND-Meldung direkt an die entsprechenden Fensterprozedur. TranslateAccelerator wird nicht zurückgegeben, bis die Fensterprozedur die Nachricht verarbeitet hat.

 Int TranslateAccelerator) HWND  hWnd, / / handle für ZielfensterHACCELhAccTable, / / handle für ZugriffstastentabelleLPMSGLpMsg / / Adresse der Struktur mit Nachricht);
 

Parameter

hWnd
Handle für das Fenster, dessen Nachrichten übersetzt werden sollen.
hAccTable
Behandeln Sie, um eine Zugriffstastentabelle. Die Zugriffstastentabelle ist muss durch einen Aufruf der Funktion LoadAccelerators geladen oder durch einen Aufruf der CreateAcceleratorTable -Funktion erstellt wurde.
lpMsg
Zeiger auf eine MSG -Struktur, die Nachrichteninformationen enthält aus dem aufrufenden Thread-Nachrichtenwarteschlange mithilfe der Funktion GetMessage oder PeekMessage abgerufen.

Rückgabewerte

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich NULL.

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (null). Rufen Sie Fehlerinformationen verlängert bekommen, GetLastError.

Bemerkungen

Um die Nachricht zu unterscheiden, die diese Funktion Nachrichten von Menüs oder die Steuerelemente, die das hohe Word des wParam -Parameters die WM_COMMAND und WM_SYSCOMMAND -Meldung sendet enthält den Wert 1.

Zugriffstastenkombinationen verwendet, um Elemente aus dem Fenster -Menü wählen sind WM_SYSCOMMAND-Nachrichten übersetzt; alle anderen Zugriffstastenkombinationen übersetzt WM_COMMAND-Nachrichten.

Wenn TranslateAccelerator ein Wert ungleich NULL und die Nachricht wird übersetzt zurückgibt, sollte die Anwendung nicht die TranslateMessage Funktion verwenden zum Verarbeiten der Nachricht wieder.

Zugriffstaste muss auf einen Menübefehl nicht entsprechen.

Wenn ein Menüelement der Beschleuniger-Befehl entspricht, wird die Anwendung WM_INITMENU und WM_INITMENUPOPUP Nachrichten gesendet, wie wenn der Benutzer versucht wurden, um das Menü anzuzeigen. Jedoch werden diese Nachrichten nicht gesendet, wenn eine der folgenden Bedingungen erfüllt:

Wenn das angegebene Fenster das aktive Fenster und kein Fenster den Tastaturfokus hat (was im Allgemeinen der Fall ist, wenn das Fenster minimiert ist), übersetzt TranslateAccelerator WM_SYSKEYUP und WM_SYSKEYDOWN Nachrichten statt-WM_KEYDOWN und WM_KEYUP-Nachrichten.

Wenn ein Beschleuniger Tastenanschlag auftritt, die eines Menüelements entspricht, wenn das Fenster, das das Menü besitzt minimiert wird, sendet TranslateAccelerator keine WM_COMMAND-Nachricht. Jedoch wenn ein Beschleuniger Tastenanschlag, die keine Elemente in das Fenster-Menü oder im Menü Fenster entspricht auftritt, sendet die Funktion eine WM_COMMAND-Nachricht, auch wenn das Fenster minimiert ist.

Windows CE: Alle Beschleuniger Kernaussagen werden in WM_COMMAND-Nachrichten übersetzt; Windows CE unterstützt nicht die Meldung WM_SYSCOMMAND.

QuickInfo

&Nbsp; Windows NT: Version 3.1 oder höher erforderlich.
Windows:Erfordert Windows 95 oder höher.
Windows CE:Version 1.0 oder höher benötigt.
Header:In winuser.h deklarierten.
Importieren Bibliothek:Verwenden Sie user32.lib.
Unicode:Als Unicode und ANSI-Versionen unter Windows NT implementiert.

Siehe auch

Übersicht über die Tastatur Accelerators, Tastaturfunktionen Accelerator, CreateAcceleratorTable, GetMessage, LoadAccelerators, MSG, PeekMessage, SetCapture, TranslateMessage, WM_COMMAND, WM_INITMENU, WM_INITMENUPOPUP, WM_KEYDOWN, WM_SYSKEYDOWN, WM_SYSCOMMAND

Index