Функция MapVirtualKeyEx

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

Синтаксис

UINT MapVirtualKeyEx(
    UINT uCode,
    UINT uMapType,
    HKL dwhkl
);

Параметры

uCode

[in] Определяет код виртуальной клавиши или скэн-код для клавиши. Как это значение интерпретируется, зависит от значения параметра uMapType.

uMapType

[in] Определяет трансляцию для исполнения. Значение этого параметра зависит от значения параметра uCode:

 

Значение

Предназначение

0

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

1

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

2

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

3

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

dwhkl

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

Возвращаемые значения

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

Замечания

Идентификатор языка ввода данных - более широкое понятие, чем раскладка клавиатуры, так как оно может также заключать в себе преобразователь речи в текст,  Редактор Метода Ввода (IME), или любая другая форма ввода данных.

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

Windows NT/2000/XP: Прикладная программа может получить скэн-код, соответствующий для левого или правого экземпляра одной из этих клавиш путем вызова MapVirtualKeyEx с установкой uCode в одну из следующих констант кода виртуальной клавиши:

 

VK_LSHIFT

VK_RSHIFT

VK_LCONTROL

VK_RCONTROL

VK_LMENU

VK_RMENU

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

Windows 95/98/Me: MapVirtualKeyExW поддерживается  подпрограммой Microsoft Layer for Unicode (MSLU). Чтобы использовать подпрограмму, Вы должны добавить некоторые файлы к вашему приложению, как это определено в Microsoft Layer for Unicode для систем Windows 95/98/Me.

Смотри также

Обзор Ввод данных с клавиатуры, GetAsyncKeyState, GetKeyboardState, GetKeyState, LoadKeyboardLayout, SetKeyboardState

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 4.0 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz