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


Функция MapVirtualKeyEx

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

[Теперь поддерживается в Windows NT]

Функция MapVirtualKeyEx транслирует (преобразует) код виртуальной клавиши в скэн-код или символьное значение, или переводит скэн-код в код виртуальной клавиши. Функция транслирует коды, используя язык ввода и физическую раскладку символов на клавиатуре, идентифицированную данным дескриптором раскладки.

Синтаксис

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

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

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

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

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

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

dwhkl
Идентифицирует раскладку символов на клавиатуре, которая используется для трансляции данного кода. Этот параметр может быть любой дескриптор раскладки символов на клавиатуре, предварительно возвращенный функцией LoadKeyboardLayout.

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

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

VK_LSHIFTVK_RSHIFT
VK_LCONTROLVK_RCONTROL
VK_LMENUVK_RMENU

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

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

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

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

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