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) |