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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 05.08.2002