WM _ CHAR-Meldung
Wird im Fenster mit dem Tastaturfokus veröffentlicht, wenn eine WM _ KEYDOWN-Nachricht von der TranslateMessage-Funktion übersetzt wird. Die WM _ CHAR-Meldung enthält den Zeichencode der gedrückten Taste.
#define WM_CHAR 0x0102
Parameter
-
wParam
-
Der Zeichencode des Schlüssels.
-
lParam
-
Anzahl der Wiederholungen, Überprüfungscode, Flag für erweiterte Schlüssel, Kontextcode, vorheriges Schlüsselzustandsflag und Übergangszustandsflag, wie in der folgenden Tabelle 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 lang 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 1, wenn die ALT-TASTE gedrückt gehalten wird, während die Taste gedrückt wird. andernfalls ist der Wert 0. 30 Der vorherige Schlüsselzustand. Der Wert ist 1, wenn der Schlüssel vor dem Senden der Nachricht heruntergefahren ist, oder 0, wenn der Schlüssel hoch ist. 31 Der Übergangszustand. Der Wert ist 1, wenn die Taste freigegeben wird, oder 0, wenn die Taste gedrückt wird. 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 WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
// ...
case WM_CHAR:
OnKeyPress(wParam);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
Beispiel aus Windows klassischen Beispielen auf GitHub.
Bemerkungen
Die WM _ CHAR-Nachricht verwendet das Unicode Transformation Format (UTF)-16.
Es gibt nicht notwendigerweise eine 1:1-Entsprechung zwischen gedrückten Tasten und generierten Zeichenmeldungen, sodass die Informationen im hohen Wort des lParam-Parameters in der Regel für Anwendungen nicht nützlich sind. Die Informationen im hoch geordneten Wort gelten nur für die letzte WM _ KEYDOWN-Nachricht, die der Veröffentlichung der WM _ CHAR-Nachricht vorausgegangen ist.
Für erweiterte Tastaturen mit 101 und 102 Tasten sind erweiterte Tasten die rechte ALT-Taste und die rechte STRG-Taste im Hauptteil der Tastatur. DIE TASTEN INS, DEL, HOME, END, PAGE UP, PAGE DOWN und die Pfeiltasten in den Clustern links neben der numerischen Tastatur; und die Division (/) und die EINGABETASTEn in der numerischen Tastatur. Einige andere Tastaturen unterstützen möglicherweise das Bit mit erweiterter Taste im lParam-Parameter.
Die WM _ UNICHAR-Nachricht ist mit WM CHAR _ identisch, verwendet jedoch UTF-32. Es wurde entwickelt, um Unicode-Zeichen an ANSI-Fenster zu senden oder zu posten, und kann Zeichen der ergänzenden Unicode-Ebene verarbeiten.
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