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