Функция MapVirtualKeyA (winuser.h)
Преобразует (сопоставляет) код виртуального ключа в код сканирования или значение символа или преобразует код сканирования в код виртуального ключа.
Синтаксис
UINT MapVirtualKeyA(
[in] UINT uCode,
[in] UINT uMapType
);
Параметры
[in] uCode
Тип: UINT
Код виртуального ключа или сканировать код ключа. Интерпретация этого значения зависит от значения параметра uMapType.
[in] uMapType
Тип: UINT
Выполняемый перевод. Значение этого параметра зависит от значения параметра uCode.
Ценность | Значение |
---|---|
MAPVK_VK_TO_VSC 0 |
Параметр uCode — это код виртуального ключа и преобразуется в код сканирования. Если это код виртуального ключа, который не отличается от клавиш слева и правой руки, возвращается код проверки слева. Если перевода нет, функция возвращает значение 0. |
MAPVK_VSC_TO_VK 1 |
Параметр uCode — это код сканирования и преобразуется в код виртуального ключа, который не отличается от клавиш слева и справа. Если перевода нет, функция возвращает значение 0. Windows Vista и более поздних версий: высокий байт значения uCode может содержать 0xe0 или 0xe1, чтобы указать расширенный код сканирования. |
MAPVK_VK_TO_CHAR 2 |
Параметр uCode — это код виртуального ключа, который преобразуется в нешифованное символьное значение в слове низкого порядка возвращаемого значения. Мертвые ключи (диакритические) указываются путем задания верхнего бита возвращаемого значения. Если перевода нет, функция возвращает значение 0. См. примечания. |
MAPVK_VSC_TO_VK_EX 3 |
Параметр uCode является кодом сканирования и преобразуется в код виртуального ключа, который различает ключи слева и справа. Если перевода нет, функция возвращает значение 0. Windows Vista и более поздних версий: высокий байт значения uCode может содержать 0xe0 или 0xe1, чтобы указать расширенный код сканирования. |
MAPVK_VK_TO_VSC_EX 4 |
Windows Vista и более поздних версий: параметр uCode является кодом виртуального ключа и преобразуется в код сканирования. Если это код виртуального ключа, который не отличается от клавиш слева и правой руки, возвращается код проверки слева. Если код сканирования является расширенным кодом сканирования, высокий байт возвращаемого значения будет содержать либо 0xe0, либо 0xe1, чтобы указать расширенный код сканирования. Если перевода нет, функция возвращает значение 0. |
Возвращаемое значение
Тип: UINT
Возвращаемое значение — это код сканирования, код виртуального ключа или символьное значение в зависимости от значения uCode и uMapType. Если нет перевода, возвращаемое значение равно нулю.
Замечания
Чтобы указать дескриптор раскладки клавиатуры для перевода указанного кода, используйте функцию MapVirtualKeyEx.
Приложение может использовать MapVirtualKey для перевода кодов сканирования в константы кода виртуального ключа VK_SHIFT, VK_CONTROLи VK_MENUи наоборот. Эти переводы не различаются между левыми и правыми экземплярами клавиш SHIFT, CTRL или ALT.
Приложение может получить код сканирования, соответствующий левому или правому экземпляру одного из этих ключей, вызвав MapVirtualKey с uCode задать одно из следующих констант кода виртуального ключа:
- VK_LSHIFT
- VK_RSHIFT
- VK_LCONTROL
- VK_RCONTROL
- VK_LMENU
- VK_RMENU
Эти константы слева и справа доступны приложению только через GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKeyKeyи MapVirtualKeyEx. Полный список кодов виртуальных ключей см. в разделе коды виртуальных ключей.
В режиме MAPVK_VK_TO_CHARкоды виртуальных ключей, A. Ключи Z преобразуются в верхний регистр "A". Символы Z независимо от текущей раскладки клавиатуры. Если вы хотите перевести код виртуального ключа в соответствующий символ, используйте функцию ToAscii.
Заметка
Заголовок winuser.h определяет MapVirtualKey как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |