Win32 API. Функции и сообщения ввода информации с клавиатуры - Функция MapVirtualKey

ОГЛАВЛЕНИЕ

Функция MapVirtualKey

(ПреобразоватьВиртуальнуюКлавишу)

Функция 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
Замечания по платформе Не имеется