Compartir a través de


Función TranslateMessage (winuser.h)

Convierte los mensajes de clave virtual en mensajes de caracteres. Los mensajes de caracteres se publican en la cola de mensajes del subproceso que realiza la llamada, que se leerá la próxima vez que el subproceso llame a la función GetMessage o PeekMessage .

Sintaxis

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

Parámetros

[in] lpMsg

Tipo: const MSG*

Puntero a una estructura MSG que contiene información de mensajes recuperada de la cola de mensajes del subproceso que realiza la llamada mediante la función GetMessage o PeekMessage .

Valor devuelto

Tipo: BOOL

Si el mensaje se traduce (es decir, se publica un mensaje de caracteres en la cola de mensajes del subproceso), el valor devuelto es distinto de cero.

Si el mensaje es WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN o WM_SYSKEYUP, el valor devuelto es distinto de cero, independientemente de la traducción.

Si el mensaje no se traduce (es decir, un mensaje de caracteres no se publica en la cola de mensajes del subproceso), el valor devuelto es cero.

Comentarios

La función TranslateMessage no modifica el mensaje al que apunta el parámetro lpMsg .

WM_KEYDOWN y combinaciones de WM_KEYUP producen un mensaje de WM_CHAR o WM_DEADCHAR . WM_SYSKEYDOWN y combinaciones de WM_SYSKEYUP producen un mensaje de WM_SYSCHAR o WM_SYSDEADCHAR .

TranslateMessage genera mensajes WM_CHAR solo para las teclas asignadas a caracteres ASCII por el controlador de teclado.

Si las aplicaciones procesan mensajes de clave virtual para algún otro propósito, no deben llamar a TranslateMessage. Por ejemplo, una aplicación no debe llamar a TranslateMessage si la función TranslateAccelerator devuelve un valor distinto de cero. Tenga en cuenta que la aplicación es responsable de recuperar y enviar mensajes de entrada al cuadro de diálogo. La mayoría de las aplicaciones usan el bucle de mensajes principal para esto. Sin embargo, para permitir que el usuario se mueva a y para seleccionar controles mediante el teclado, la aplicación debe llamar a IsDialogMessage. Para obtener más información, vea Interfaz de teclado del cuadro de diálogo.

Ejemplos

Para obtener un ejemplo, consulte Creación de un bucle de mensajes.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-message-l1-1-0 (introducido en Windows 8)

Consulte también