Qualquer segmento que recebe entrada de caracteres do usuário deve incluir a TranslateMessage função em seu loop de mensagem. Essa função examina o virtual-código de chave de uma mensagem pressionamento de tecla e, se o código corresponde a um caractere, coloca uma mensagem caractere no fila de mensagens. A mensagem caractere é removida e distribuída na próxima iteração do loop de mensagem; o wParam parâmetro da mensagem contém o código do caractere.
Em geral, loop de mensagem do thread deve usar a TranslateMessage função converter cada mensagem, não apenas virtual-chave mensagens. Embora TranslateMessage não tem efeito sobre outros tipos de mensagens, ela garante que entrada do teclado é traduzida corretamente. O exemplo a seguir mostra como incluir a TranslateMessage função em um loop de mensagem do thread típico.
ao mesmo tempo (GetMessage (amp; msg, (HWND) NULL, 0, 0)) {se (TranslateAccelerator (hwndMain, haccl, & msg) = = 0) {TranslateMessage(&msg);
DispatchMessage(&msg);
}
}