winuser.h


TranslateMessage

Esta función traduce los mensajes de teclas virtuales a sus equivalentes en mensajes de carácter. Estos a su vez son reenviados a la lista de mensajes del proceso al que pertenecen, para que sean leídos la próxima vez que el proceso llame a la función GetMessage o PeekMessage.

Sintaxis

BOOL TranslateMessage(
    CONST MSG *lpmsg  // puntero a la estructura con el mensaje
  ); 

Parámetros:

lpmsg: puntero a una estructura MSG que contiene la información sobre el mensaje tomado de la lista de mensajes del proceso mediante la función GetMessage o PeekMessage.

Valor de retorno

Si el mensaje fue traducido, es decir, si un mensaje de carácter se envió a la lista de mensajes del proceso, retorna con TRUE; en caso contrario, retorna con FALSE.

Windows NT: la función retorna con TRUE tanto para teclas de función, como teclas de flechas, teclas de caracteres o de dígitos.

Observaciones

Esta función no modifica el mensaje apuntado por el parámetro lpmsg.

Las combinaciones con los mensajes WM_KEYDOWN y WM_KEYUP producen un mensaje WM_CHAR o WM_DEADCHAR. Las combinaciones con WM_SYSKEYDOWN y WM_SYSKEYUP producen un mensaje WM_SYSCHAR o WM_SYSDEADCHAR.

Únicamente se producirán mensajes WM_CHAR para teclas que estén mapeadas a caracteres ASCII por el driver del teclado.

Las aplicaciones que procesen los mensajes de teclas virtuales para otros propósitos, no deben llamar a la función TranslateMessage. Por ejemplo, una aplicación no debería llamar a TranslateMessage si la función TranslateAccelerator retorna con TRUE.