Mortos-caractere mensagens

Alguns teclados diferentes do inglês contêm chaves de caracteres que não são esperadas para produzir caracteres por si mesmos. Em vez disso, eles são usados para adicionar um sinal diacrítico para o caractere produzido por pressionamento de tecla posterior. Essas chaves são chamadas teclas mortas. O circunflexo chave em um teclado alemão é um exemplo de uma chave de inatividade. Para introduzir caracteres consistindo de um "o" com um acento circunflexo, um usuário alemão digite a chave circunflexa seguida da tecla "o". A janela com o foco do teclado receberia a seguinte seqüência de mensagens:

WM_KEYDOWN
WM_DEADCHAR
WM_KEYUP
WM_KEYDOWN
WM_CHAR
WM_KEYUP

TranslateMessage gera a mensagem WM_DEADCHAR quando ele processa a mensagem WM_KEYDOWN de uma chave de inatividade. Embora o wParam parâmetro da mensagem WM_DEADCHAR contém o código do caractere do diacrítico para a chave de inatividade, um aplicativo geralmente ignora a mensagem. Em vez disso, ele processa a mensagem WM_CHAR gerada pelo pressionamento de tecla posterior. O wParam parâmetro da mensagem WM_CHAR contém o código do caractere da carta com o diacrítico. Se o pressionamento de tecla subseqüente gera um caractere que não pode ser combinado com um diacrítico, o sistema gera duas mensagens WM_CHAR. O wParam parâmetro do primeiro contém o código do caractere do diacrítico; o wParam parâmetro da segunda contém o código do caractere da chave caractere subseqüente.

A TranslateMessage função gera a mensagem WM_SYSDEADCHAR quando ele processa a mensagem WM_SYSKEYDOWN de uma chave de inatividade sistema (uma chave de inatividade que é pressionada em combinação com a tecla alt). Um aplicativo normalmente ignora a mensagem WM_SYSDEADCHAR.

Index