Compartilhar via


Função MapVirtualKeyA (winuser.h)

Converte (mapas) um código de chave virtual em um código de verificação ou valor de caractere ou converte um código de verificação em um código de chave virtual.

Sintaxe

UINT MapVirtualKeyA(
  [in] UINT uCode,
  [in] UINT uMapType
);

Parâmetros

[in] uCode

Tipo: UINT

O código de chave virtual ou o código de verificação de uma chave. A maneira como esse valor é interpretado depende do valor do parâmetro uMapType.

[in] uMapType

Tipo: UINT

A tradução a ser executada. O valor desse parâmetro depende do valor do parâmetro uCode.

Valor Significado
MAPVK_VK_TO_VSC
0
O parâmetro uCode é um código de chave virtual e é convertido em um código de verificação. Se for um código de chave virtual que não distingue entre as teclas esquerda e direita, o código de verificação à esquerda será retornado. Se não houver tradução, a função retornará 0.
MAPVK_VSC_TO_VK
1
O parâmetro uCode é um código de verificação e é convertido em um código de chave virtual que não distingue entre chaves esquerda e direita. Se não houver tradução, a função retornará 0.
Windows Vista e posterior: o byte alto do uCode valor pode conter 0xe0 ou 0xe1 para especificar o código de verificação estendido.
MAPVK_VK_TO_CHAR
2
O parâmetro uCode é um código de chave virtual e é convertido em um valor de caractere não improvisado na palavra de ordem baixa do valor retornado. Chaves mortas (diacríticos) são indicadas definindo o bit superior do valor retornado. Se não houver tradução, a função retornará 0. Consulte Comentários.
MAPVK_VSC_TO_VK_EX
3
O parâmetro uCode é um código de verificação e é convertido em um código de chave virtual que distingue entre chaves à esquerda e à direita. Se não houver tradução, a função retornará 0.
Windows Vista e posterior: o byte alto do uCode valor pode conter 0xe0 ou 0xe1 para especificar o código de verificação estendido.
MAPVK_VK_TO_VSC_EX
4
Windows Vista e posterior: o parâmetro uCode é um código de chave virtual e é convertido em um código de verificação. Se for um código de chave virtual que não distingue entre as teclas esquerda e direita, o código de verificação à esquerda será retornado. Se o código de verificação for um código de verificação estendido, o byte alto do valor retornado conterá 0xe0 ou 0xe1 para especificar o código de verificação estendido. Se não houver tradução, a função retornará 0.

Valor de retorno

Tipo: UINT

O valor retornado é um código de verificação, um código de chave virtual ou um valor de caractere, dependendo do valor de uCode e uMapType. Se não houver tradução, o valor retornado será zero.

Observações

Para especificar um identificador para o layout do teclado a ser usado para traduzir o código especificado, use a função MapVirtualKeyEx.

Um aplicativo pode usar MapVirtualKey para traduzir códigos de verificação para as constantes de código de chave virtual VK_SHIFT, VK_CONTROLe VK_MENUe vice-versa. Essas traduções não distinguem entre as instâncias esquerda e direita das teclas SHIFT, CTRL ou ALT.

Um aplicativo pode obter o código de verificação correspondente à instância esquerda ou direita de uma dessas chaves chamando MapVirtualKey com uCode definido como uma das seguintes constantes de código de chave virtual:

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU

Essas constantes de distinção à esquerda e à direita estão disponíveis para um aplicativo somente por meio das funções GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKeye mapVirtualKeyEx. Para listar a tabela completa de códigos de chave virtual, consulte Códigos de Chave Virtual.

No modo MAPVK_VK_TO_CHARcódigos de chave virtual, o "A". As chaves Z' são traduzidas para "A" maiúsculas. Caracteres Z, independentemente do layout atual do teclado. Se você quiser traduzir um código de chave virtual para o caractere correspondente, use a função ToAscii.

Nota

O cabeçalho winuser.h define MapVirtualKey como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winuser.h (inclua Windows.h)
biblioteca User32.lib
de DLL User32.dll

Consulte também