WM _ KEYDOWN-Meldung
Wird im Fenster mit dem Tastaturfokus gepostet, wenn eine nichtsystemische Taste gedrückt wird. Eine Nichtsystemtaste ist eine Taste, die gedrückt wird, wenn die ALT-TASTE nicht gedrückt wird.
#define WM_KEYDOWN 0x0100
Parameter
-
wParam
-
Der Virtuelle Schlüsselcode des Nichtsystemschlüssels. Weitere Informationen finden Sie unter Codes für virtuelle Schlüssel.
-
lParam
-
Anzahl der Wiederholungen, Überprüfungscode, Flag für erweiterte Schlüssel, Kontextcode, vorheriges Schlüsselzustandsflag und Übergangszustandsflag, wie im Folgenden dargestellt.
Bits Bedeutung 0-15 Die Wiederholungsanzahl für die aktuelle Meldung. Der Wert gibt an, wie oft die Tastatureingabe automatisch angezeigt wird, wenn der Benutzer den Schlüssel hält. Wenn die Tastatureingabe lange genug gehalten wird, werden mehrere Nachrichten gesendet. Die Wiederholungsanzahl ist jedoch nicht kumulativ. 16-23 Der Scancode. Der Wert hängt vom OEM ab. 24 Gibt an, ob es sich bei der Taste um eine erweiterte Taste handelt, z. B. die rechte ALT- und STRG-Taste, die auf einer erweiterten Tastatur mit 101 oder 102 Tasten angezeigt werden. Der Wert ist 1, wenn es sich um einen erweiterten Schlüssel handelt. andernfalls ist es 0. 25-28 Reserviert; nicht verwenden. 29 Der Kontextcode. Der Wert ist immer 0 (0) für eine WM _ KEYDOWN-Nachricht. 30 Der vorherige Schlüsselzustand. Der Wert ist 1, wenn der Schlüssel vor dem Senden der Nachricht heruntergefahren ist, oder 0 (null), wenn der Schlüssel hoch ist. 31 Der Übergangszustand. Der Wert ist immer 0 (0) für eine WM _ KEYDOWN-Nachricht. Weitere Informationen finden Sie unter Keystroke Message Flags.
Rückgabewert
Eine Anwendung sollte 0 (null) zurückgeben, wenn sie diese Nachricht verarbeitet.
Beispiel
LRESULT CALLBACK HostWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_KEYDOWN:
if (wParam == VK_ESCAPE)
{
if (isFullScreen)
{
GoPartialScreen();
}
}
break;
// ...
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Beispiel aus Windows klassischen Beispielen auf GitHub.
Bemerkungen
Wenn die F10-Taste gedrückt wird, legt die DefWindowProc-Funktion ein internes Flag fest. Wenn DefWindowProc die WM _ KEYUP-Nachricht empfängt, überprüft die Funktion, ob das interne Flag festgelegt ist, und sendet, falls ja, eine WM _ SYSCOMMAND-Nachricht an das Fenster der obersten Ebene. Der WM _ SYSCOMMAND-Parameter der Nachricht ist auf SC _ KEYMENU festgelegt.
Aufgrund des features autoepeat können mehrere WM _ KEYDOWN-Nachrichten gesendet werden, bevor eine WM _ KEYUP-Nachricht veröffentlicht wird. Der vorherige Schlüsselzustand (Bit 30) kann verwendet werden, um zu bestimmen, ob die WM _ KEYDOWN-Meldung den ersten Übergang nach unten oder einen wiederholten Übergang nach unten angibt.
Für erweiterte Tastaturen mit 101 und 102 Tasten sind erweiterte Tasten die rechte ALT- und STRG-Taste im Hauptteil der Tastatur. DIE INS-, DEL-, HOME-, END-, PAGE UP-, PAGE DOWN- und Pfeiltasten in den Clustern links neben der numerischen Tastatur; und die Division (/) und die EINGABETASTEn in der numerischen Tastatur. Andere Tastaturen unterstützen möglicherweise das Bit mit erweiterter Taste im lParam-Parameter.
Anwendungen müssen wParam an TranslateMessage übergeben, ohne es zu ändern.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
| Header |
|
Weitere Informationen
-
Verweis
-
Konzept