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


Функция MapVirtualKey

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

Функция MapVirtualKey транслирует код виртуальной клавиши в скэн-код или символьное значение, или переводит скэн-код в код виртуальной клавиши.

Синтаксис

UINT MapVirtualKey(
UINT uCode,// код виртуальной клавиши или скэн-код
UINT uMapType// трансляция для исполнения
);

Параметры
uCode
Определяет код виртуальной клавиши или скэн-код для клавиши. Как это значение интерпретируется, зависит от значения параметра uMapType.
uMapType
Определяет трансляцию для исполнения. Значение этого параметра зависит от значения параметра uCode:

Значение Предназначение
0uCode - код виртуальной клавиши и транслируется в скэн-код. Если это код виртуальной клавиши,
который не делает различия между лево - и правосторонними клавишами, возвращается скэн-код левой клавиши.
Если не происходит никакой трансляции, функция возвращает значение 0.

1uCode - скэн-код и транслируется в код виртуальной клавиши, который не делает различия между лево -
и правосторонними клавишами. Если не происходит никакой трансляции, функция возвращает значение 0.

2uCode - код виртуальной клавиши и транслируется в значение символов нижнего регистра, в младшем
слове величина возвращаемого значения. Мертвые клавиши (диакритические знаки) обозначаются при
помощи установки старшего бита величины возвращаемого значения. Если не происходит никакой
трансляции, функция возвращает значение 0.

3uCode - скэн-код и транслируется в код виртуальной клавиши, который делает различие между
лево - и правосторонними клавишами. Если не производится никакой трансляции, функция
возвращает значение 0.

Возвращаемые значения
Величина возвращаемого значения является или скэн-кодом, кодом виртуальной клавиши, или символьным значением, которое зависит от значения uCode и uMapType. Если не производится никакой трансляции, величина возвращаемого значения нулевая.

Замечания
Прикладная программа может использовать MapVirtualKey, чтобы перевести скэн-коды в константы кода виртуальной клавиши VK_SHIFT, VK_CONTROL и VK_MENU и наоборот. Эти трансляции не делают различия между левыми и правыми экземплярами клавиш SHIFT, CTRL или ALT. Прикладная программа может получить скэн-код, соответствующий для левого или правого экземпляра одной из этих клавиш путем вызова MapVirtualKey с установкой uCode в одну из следующих констант кода виртуальной клавиши:

VK_LSHIFTVK_RSHIFT
VK_LCONTROLVK_RCONTROL
VK_LMENUVK_RMENU

Эти лево - и правосторонние константы доступны прикладной программе только через функции GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState и MapVirtualKey.

Смотри также
GetAsyncKeyState, GetKeyboardState, GetKeyState, SetKeyboardState

Размещение и совместимость MapVirtualKey

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотекаuser32.lib
Заголовочный файлwinuser.h
UnicodeWinNT
Замечания по платформеНе имеется

 

 
« Предыдущая статья   Следующая статья »