Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Veröffentlicht im Fenster mit dem Tastaturfokus, wenn eine WM_KEYDOWN Nachricht von der TranslateMessage-Funktion übersetzt wird. Die WM_CHAR Nachricht enthält den Zeichencode der taste, die gedrückt wurde.
#define WM_CHAR 0x0102
Parameters
-
wParam
-
Der Zeichencode des Schlüssels.
-
lParam
-
Die Wiederholungsanzahl, der Scancode, das Flag für erweiterte Schlüssel, der Kontextcode, das vorherige Kennzeichen für den Schlüsselstatus und das Übergangsstatusflaggen, wie in der folgenden Tabelle dargestellt.
Binäre Ziffern Bedeutung 0 - 15 Die Wiederholungsanzahl für die aktuelle Nachricht. Der Wert ist die Häufigkeit, mit der der Tastenanschlag automatisch ausgeführt wird, weil der Benutzer die Taste gedrückt hält. Wenn der Tastenanschlag 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 die Taste eine erweiterte Taste ist, z. B. die rechte ALT- und STRG-TASTE, die auf einer erweiterten 101- oder 102-Tastentastaturen angezeigt werden. Der Wert ist 1, wenn es sich um einen erweiterten Schlüssel handelt. andernfalls ist es 0. 25-27 Reserviert; nicht verwenden. 28 Das Menümodus-Flag. Der Wert ist 1, wenn ein Menü aktiv ist. andernfalls ist der Wert 0. 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üsselstatus. Der Wert ist 1, wenn der Schlüssel vor dem Senden der Nachricht nach unten ist, oder wenn der Schlüssel nach oben ist. 31 Der Übergangszustand. Der Wert ist 1, wenn die Taste losgelassen wird, oder 0, wenn die Taste gedrückt wird. Weitere Details finden Sie unter Keystroke Message Flags.For more detail, see Keystroke Message Flags.
Zurückgegebener Wert
Eine Anwendung sollte null zurückgeben, wenn sie diese Nachricht verarbeitet.
Example
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 Classic Samples auf GitHub.
Hinweise
Die WM_CHAR Nachricht verwendet UTF-16-Codeeinheiten (16-Bit-Unicode-Transformationsformat) in wParam , wenn die Unicode-Version der RegisterClass-Funktion zum Registrieren der Fensterklasse verwendet wurde. Andernfalls stellt das System Zeichen auf der aktuellen Prozesscodeseite bereit, die in Windows Version 1903 (Mai 2019 Update) und neuer auf UTF-8 festgelegt werden können. Weitere Informationen finden Sie unter Registrieren von Fensterklassen und Verwenden von UTF-8-Codeseiten in Windows-Apps.
Ab Windows Vista kann WM_CHAR Nachricht UTF-16-Ersatzpaare an Unicode-Fenster senden. Verwenden Sie bei Bedarf die Makros IS_HIGH_SURROGATE, IS_LOW_SURROGATE und IS_SURROGATE_PAIR , um solche Fälle zu erkennen.
Es gibt nicht unbedingt eine 1:1-Entsprechung zwischen gedrückten Tasten und Zeichenmeldungen, die generiert werden, und daher ist die Information im hochgeordneten Wort des lParam-Parameters in der Regel nicht nützlich für Anwendungen. Die Informationen im Wort "Hochreihenfolge" gelten nur für die letzte WM_KEYDOWN Nachricht, die vor der Veröffentlichung der WM_CHAR Nachricht steht.
Bei erweiterten Tastaturen mit 101- und 102-Tasten sind erweiterte Tasten die richtige ALT- und die rechte STRG-TASTE im Hauptabschnitt der Tastatur; die INS-, DEL-, HOME-, END-, BILD-AUF-, BILD-NACH-UNTEN- und Pfeiltasten in den Clustern links neben der Zehnertastatur; und die Trenntasten (/) und DIE EINGABETASTE auf der Zehnertastatur. Einige andere Tastaturen unterstützen möglicherweise das Bit mit erweiterter Taste im lParam-Parameter .
Die WM_UNICHAR Nachricht ist identisch mit WM_CHAR, mit Ausnahme von UTF-32. Es ist so konzipiert, dass Unicode-Zeichen an ANSI-Fenster gesendet oder gepostet werden, und es kann Unicode-Zusatzebenenzeichen verarbeiten.
Requirements
| Anforderung | Value |
|---|---|
| Mindestens unterstützter Client |
Windows 2000 Professional [nur Desktop-Apps] |
| Unterstützter Server (Mindestversion) |
Windows 2000 Server [nur Desktop-Apps] |
| Header |
|