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
Winuser.h (include Windows.h)

Weitere Informationen

Verweis

TranslateMessage

WM _ KEYDOWN

WM _ UNICHAR

Konzept

Tastatureingaben