A função ToAscii traduz o código de chave virtual especificado e o estado do teclado para o caractere ou caracteres correspondentes. A função converte o código usando o idioma de entrada e o layout de teclado físico identificado pelo identificador de layout de teclado fornecido.
int (ToAscii UINT uVirtKey, / / virtual-chave códigoUINTuScanCode, / / código de verificaçãoPBYTElpKeyState, / / chave estado matrizLPWORDlpChar, / / chave traduzidas de bufferUINTuFlags / / menu de ativo bandeira);
O baixo bit, se definido, indica que a chave for alternado no modo no. Nessa função, somente o bit de alternância da tecla caps lock é relevante. O estado de alternância das teclas num lock e scroll lock é ignorado.
Se a chave especificada é uma chave de inatividade, o valor de retorno é negativo. Caso contrário, é um dos valores a seguir.
Valor | Significado |
---|---|
0 | A chave virtual especificada não tem nenhuma tradução para o estado atual do teclado. |
1 | Um caractere foi copiado para a reserva. |
2 | Dois caracteres foram copiados para a reserva. Isso geralmente acontece quando um personagem morto-chave (acento ou sinal diacrítico) armazenado no layout do teclado não pode ser composto com a chave virtual especificada para formar um único caractere. |
Os parâmetros fornecidos para a função ToAscii podem não ser suficientes para traduzir o código chave virtual, porque uma chave de inatividade anterior é armazenada no layout do teclado.
Normalmente, ToAscii realiza a tradução baseada o código de chave virtual. Em alguns casos, no entanto, 15 bits do parâmetro uScanCode podem ser usado para distinguir entre um pressionamento de tecla e uma liberação chave. A codificar digitalizar é utilizada para a tradução de combinações detecla ALT +.
Embora a tecla num lock é uma tecla de alternância que afeta o comportamento do teclado, ToAscii ignora a configuração de alternância (o bit de baixa) de lpKeyState (VK_NUMLOCK, porque o parâmetro de uVirtKey por si só é suficiente para distinguir as teclas de movimento do cursor (VK_HOME VK_INSERT e assim por diante) das teclas numéricas (VK_DECIMAL, VK_NUMPAD0 - VK_NUMPAD9).
nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Sem suporte.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.
Visão geral de entrada de teclado, funções de entrada de teclado, OemKeyScan, ToUnicode, VkKeyScan