(ПреобразоватьВиртуальнуюКлавишу)
Функция MapVirtualKey транслирует код виртуальной клавиши в скэн-код или символьное значение, или переводит скэн-код в код виртуальной клавиши.
Синтаксис
UINT MapVirtualKey( UINT uCode, // код виртуальной клавиши или скэн-код UINT uMapType // трансляция для исполнения );
Параметры
uCode
Определяет код виртуальной клавиши или скэн-код для клавиши. Как это значение интерпретируется, зависит от значения параметра uMapType.
uMapType
Определяет трансляцию для исполнения. Значение этого параметра зависит от значения параметра uCode:
Значение Предназначение 0 uCode - код виртуальной клавиши и транслируется в скэн-код. Если это код виртуальной клавиши, который не делает различия между лево - и правосторонними клавишами, возвращается скэн-код левой клавиши. Если не происходит никакой трансляции, функция возвращает значение 0. 1 uCode - скэн-код и транслируется в код виртуальной клавиши, который не делает различия между лево - и правосторонними клавишами. Если не происходит никакой трансляции, функция возвращает значение 0. 2 uCode - код виртуальной клавиши и транслируется в значение символов нижнего регистра, в младшем слове величина возвращаемого значения. Мертвые клавиши (диакритические знаки) обозначаются при помощи установки старшего бита величины возвращаемого значения. Если не происходит никакой трансляции, функция возвращает значение 0. 3 uCode - скэн-код и транслируется в код виртуальной клавиши, который делает различие между лево - и правосторонними клавишами. Если не производится никакой трансляции, функция возвращает значение 0.
Возвращаемые значения
Величина возвращаемого значения является или скэн-кодом, кодом виртуальной клавиши, или символьным значением, которое зависит от значения uCode и uMapType. Если не производится никакой трансляции, величина возвращаемого значения нулевая.
Замечания
Прикладная программа может использовать 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 и MapVirtualKey.
Смотри также
GetAsyncKeyState, GetKeyboardState, GetKeyState, SetKeyboardState
Размещение и совместимость MapVirtualKey
Windows NT Да Win95 Да Win32s Да Импортируемая библиотека user32.lib Заголовочный файл winuser.h Unicode WinNT Замечания по платформе Не имеется