Compartilhar via


Função MapVirtualKeyExW (winuser.h)

Traduz (mapeia) um código de chave virtual em um código de varredura ou valor de caractere ou converte um código de verificação em um código de chave virtual. A função converte os códigos usando o idioma de entrada e uma identificação de localidade de entrada.

Sintaxe

UINT MapVirtualKeyExW(
  [in]                UINT uCode,
  [in]                UINT uMapType,
  [in, out, optional] HKL  dwhkl
);

Parâmetros

[in] uCode

Tipo: UINT

O código de chave virtual ou o código de verificação de uma chave. A forma 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 as teclas esquerda e direita. Se não houver tradução, a função retornará 0.
Windows Vista e posterior: o byte alto do valor uCode 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. As teclas 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 Observações.
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 as teclas esquerda e direita. Se não houver tradução, a função retornará 0.
Windows Vista e posterior: o byte alto do valor uCode 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.

[in, out, optional] dwhkl

Tipo: HKL

Identificador de localidade de entrada a ser usado para traduzir o código especificado. Esse parâmetro pode ser qualquer identificador de localidade de entrada retornado anteriormente pela função LoadKeyboardLayout .

Retornar valor

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.

Comentários

O identificador de localidade de entrada é um conceito mais amplo do que um layout de teclado, pois também pode abranger um conversor de fala em texto, um método de entrada Editor (IME) ou qualquer outra forma de entrada.

Um aplicativo pode usar MapVirtualKeyEx para traduzir códigos de verificação para as constantes de código de chave virtual VK_SHIFT, VK_CONTROL e VK_MENU e 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 MapVirtualKeyEx 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, MapVirtualKey e 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 teclas Z' são convertidas em maiúsculas "A". Caracteres Z, independentemente do layout do teclado atual. Se você quiser traduzir um código de chave virtual para o caractere correspondente, use a função ToUnicode .

Observação

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

Requisitos

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

Confira também