ToAscii

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);
 

Parâmetros

uVirtKey
Especifica o virtual-código de chave a ser traduzido.
uScanCode
Especifica a codificar digitalizar hardware da chave a ser traduzido. O bit de ordem alta desse valor é definido se a chave é para cima (não pressionado).
lpKeyState
Ponteiro para uma matriz de 256 bytes que contém o estado atual do teclado. Cada elemento (byte) na matriz contém o estado de uma chave. Se o bit de alta ordem de um byte é definido, a chave é para baixo (pressionado).

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.

lpChar
Ponteiro para o buffer que receberá o traduzido caractere ou caracteres.
uFlags
Especifica se um menu está ativo. Este parâmetro deve ser 1 se um menu estiver ativo, ou 0 caso contrário.

Retornar valores

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.

Observações

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).

QuickInfo

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.

Ver também

Visão geral de entrada de teclado, funções de entrada de teclado, OemKeyScan, ToUnicode, VkKeyScan

Index