Compartilhar via


Função TranslateMessage (winuser.h)

Converte mensagens de chave virtual em mensagens de caractere. As mensagens de caractere são postadas na fila de mensagens do thread de chamada, para serem lidas na próxima vez que o thread chamar a função GetMessage ou PeekMessage .

Sintaxe

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

Parâmetros

[in] lpMsg

Tipo: const MSG*

Um ponteiro para uma estrutura MSG que contém informações de mensagem recuperadas da fila de mensagens do thread de chamada usando a função GetMessage ou PeekMessage .

Retornar valor

Tipo: BOOL

Se a mensagem for traduzida (ou seja, uma mensagem de caractere será postada na fila de mensagens do thread), o valor retornado será diferente de zero.

Se a mensagem for WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN ou WM_SYSKEYUP, o valor retornado será diferente de zero, independentemente da tradução.

Se a mensagem não for traduzida (ou seja, uma mensagem de caractere não será postada na fila de mensagens do thread), o valor retornado será zero.

Comentários

A função TranslateMessage não modifica a mensagem apontada pelo parâmetro lpMsg .

WM_KEYDOWN e combinações de WM_KEYUP produzem uma mensagem WM_CHAR ou WM_DEADCHAR . WM_SYSKEYDOWN e combinações de WM_SYSKEYUP produzem uma mensagem WM_SYSCHAR ou WM_SYSDEADCHAR .

TranslateMessage produz mensagens WM_CHAR somente para teclas mapeadas para caracteres ASCII pelo driver de teclado.

Se os aplicativos processarem mensagens de chave virtual para alguma outra finalidade, eles não deverão chamar TranslateMessage. Por exemplo, um aplicativo não deve chamar TranslateMessage se a função TranslateAccelerator retornar um valor diferente de zero. Observe que o aplicativo é responsável por recuperar e expedir mensagens de entrada para a caixa de diálogo. A maioria dos aplicativos usa o loop de mensagem main para isso. No entanto, para permitir que o usuário se mova para e selecione controles usando o teclado, o aplicativo deve chamar IsDialogMessage. Para obter mais informações, consulte Interface de teclado da caixa de diálogo.

Exemplos

Para obter um exemplo, consulte Criando um loop de mensagem.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-message-l1-1-0 (introduzido no Windows 8)

Confira também