Функция MapVirtualKey транслирует (преобразует) код виртуальной клавиши в скэн-код или символьное значение, или переводит скэн-код в код виртуальной клавиши.
Чтобы установить дескриптор раскладки клавиатуры, которая используется для трансляции указанного кода, используйте функцию MapVirtualKeyEx.
Синтаксис
UINT MapVirtualKey( UINT uCode, UINT uMapType ); |
Параметры
uCode
[in] Определяет код виртуальной клавиши или скэн-код для клавиши. Как это значение интерпретируется, зависит от значения параметра uMapType.
uMapType
[in] Определяет трансляцию для исполнения. Значение этого параметра зависит от значения параметра uCode:
Значение |
Предназначение |
0 |
uCode - код виртуальной клавиши и транслируется в скэн-код. Если это код виртуальной клавиши, который не делает различия между лево - и правосторонними клавишами, возвращается скэн-код левосторонней клавиши. Если трансляции не происходит, функция возвращает значение 0. |
1 |
uCode - скэн-код и транслируется в код виртуальной клавиши, который не делает различия между лево - и правосторонними клавишами. Если трансляции не происходит, функция возвращает значение 0. |
2 |
uCode - код виртуальной клавиши и транслируется в значение символов нижнего регистра, в младшем слове величина возвращаемого значения. Мертвые клавиши (диакритические знаки) обозначаются при помощи установки старшего бита возвращаемого значения. Если трансляции не происходит, функция возвращает значение 0. |
3 |
Windows NT/2000/XP: uCode - скэн-код и транслируется в код виртуальной клавиши, который делает различие между лево - и правосторонними клавишами. Если трансляции не происходит, функция возвращает значение 0. |
Возвращаемые значения
Величина возвращаемого значения является или скэн-кодом, или кодом виртуальной клавиши, или символьным значением, которое зависит от значения
uCode и uMapType. Если трансляции не происходит, функция возвращает значение 0.Замечания
Прикладная программа может использовать функцию MapVirtualKey, чтобы перевести скэн-коды в константы кода виртуальной клавиши VK_SHIFT, VK_CONTROL и VK_MENU и наоборот. Эти преобразования не делают различия между левыми и правыми экземплярами клавиш SHIFT, CTRL или ALT.
Windows NT/2000/XP: Прикладная программа может получить скэн-код, соответствующий для левого или правого экземпляра одной из этих клавиш путем вызова MapVirtualKey с установкой uCode в одну из следующих констант кода виртуальной клавиши:
VK_LSHIFT |
VK_RSHIFT |
VK_LCONTROL |
VK_RCONTROL |
VK_LMENU |
VK_RMENU |
Эти лево - и правосторонние константы доступны прикладной программе только через функции GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState и MapVirtualKey.
Windows 95/98/Me: MapVirtualKeyW поддерживается подпрограммой Microsoft Layer for Unicode (MSLU). Чтобы использовать подпрограмму, Вы должны добавить некоторые файлы к вашему приложению, как это определено в Microsoft Layer for Unicode для систем Windows 95/98/Me.
Смотри также
Обзор Ввод данных с клавиатуры, GetAsyncKeyState, GetKeyboardState, GetKeyState, MapVirtualKeyEx, SetKeyboardState
Размещение и совместимость MapVirtualKey |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |