Freigeben über


TranslateMessage-Funktion (winuser.h)

Übersetzt Nachrichten mit virtuellen Schlüsseln in Zeichennachrichten. Die Zeichennachrichten werden an die Nachrichtenwarteschlange des aufrufenden Threads gesendet, um beim nächsten Aufruf der GetMessage - oder PeekMessage-Funktion vom Thread gelesen zu werden.

Syntax

BOOL TranslateMessage(
  [in] const MSG *lpMsg
);

Parameter

[in] lpMsg

Typ: const MSG*

Ein Zeiger auf eine MSG-Struktur , die Nachrichteninformationen enthält, die mithilfe der GetMessage - oder PeekMessage-Funktion aus der Nachrichtenwarteschlange des aufrufenden Threads abgerufen werden.

Rückgabewert

Typ: BOOL

Wenn die Nachricht übersetzt wird (d. h. eine Zeichennachricht wird an die Nachrichtenwarteschlange des Threads gesendet), ist der Rückgabewert nichtzero.

Wenn die Nachricht WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN oder WM_SYSKEYUP ist, ist der Rückgabewert unabhängig von der Übersetzung nichtzero.

Wenn die Nachricht nicht übersetzt wird (d. h. eine Zeichennachricht wird nicht an die Nachrichtenwarteschlange des Threads gesendet), ist der Rückgabewert 0.

Hinweise

Die TranslateMessage-Funktion ändert nicht die Nachricht, auf die der lpMsg-Parameter verweist.

WM_KEYDOWN und WM_KEYUP Kombinationen erzeugen eine WM_CHAR oder WM_DEADCHAR Nachricht. WM_SYSKEYDOWN und WM_SYSKEYUP Kombinationen erzeugen eine WM_SYSCHAR oder WM_SYSDEADCHAR Nachricht.

TranslateMessage erzeugt WM_CHAR Nachrichten nur für Tasten, die vom Tastaturtreiber ASCII-Zeichen zugeordnet werden.

Wenn Anwendungen Nachrichten mit virtuellen Schlüsseln für einen anderen Zweck verarbeiten, sollten sie TranslateMessage nicht aufrufen. Für instance sollte eine Anwendung TranslateMessage nicht aufrufen, wenn die TranslateAccelerator-Funktion einen nichtzero-Wert zurückgibt. Beachten Sie, dass die Anwendung für das Abrufen und Senden von Eingabenachrichten an das Dialogfeld verantwortlich ist. Die meisten Anwendungen verwenden hierfür die Standard-Nachrichtenschleife. Damit der Benutzer jedoch über die Tastatur zu Steuerelementen wechseln und diese auswählen kann, muss die Anwendung IsDialogMessage aufrufen. Weitere Informationen finden Sie unter Dialogfeld-Tastaturschnittstelle.

Beispiele

Ein Beispiel finden Sie unter Erstellen einer Nachrichtenschleife.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-message-l1-1-0 (eingeführt in Windows 8)

Weitere Informationen