Функция VkKeyScanExA (winuser.h)
Преобразует символ в соответствующий код виртуального ключа и состояние shift. Функция преобразует символ с помощью языка ввода и физического макета клавиатуры, определяемого идентификатором входного языкового стандарта.
Синтаксис
SHORT VkKeyScanExA(
[in] CHAR ch,
[in] HKL dwhkl
);
Параметры
[in] ch
Тип: TCHAR
Символ, который необходимо преобразовать в код виртуального ключа.
[in] dwhkl
Тип: HKL
Входной идентификатор языкового стандарта, используемый для перевода символа. Этот параметр может быть любым входным идентификатором языкового стандарта, ранее возвращенным функцией LoadKeyboardLayout.
Возвращаемое значение
Тип: SHORT
Если функция выполнена успешно, байт низкого порядка возвращаемого значения содержит код виртуального ключа, а байт высокого порядка содержит состояние shift, которое может быть сочетанием следующих битов флагов.
Возвращаемое значение | Описание |
---|---|
|
Нажимается любой из клавиш SHIFT. |
|
Нажимается клавиша CTRL. |
|
Нажимается любой клавиши ALT. |
|
Нажатие клавиши Hankaku |
|
Зарезервирован (определяется драйвером раскладки клавиатуры). |
|
Зарезервирован (определяется драйвером раскладки клавиатуры). |
Если функция не находит ключ, который преобразуется в переданный код символов, то как байты низкого порядка, так и байты высокого порядка содержат –1.
Замечания
Идентификатор языкового стандарта ввода — это более широкая концепция, чем раскладка клавиатуры, так как она также может охватывать преобразователь речи к тексту, редактор метода ввода (IME) или любую другую форму ввода.
Для раскладок клавиатуры, использующих клавишу ALT вправо в качестве клавиши shift (например, французского раскладки клавиатуры), состояние shift представлено значением 6, так как клавиша ALT справа преобразуется внутри клавиши CTRL+ALT.
Переводы для числовой клавиатуры (VK_NUMPAD0 через VK_DIVIDE) игнорируются. Эта функция предназначена для перевода символов в нажатия клавиш только из основного раздела клавиатуры. Например, символ "7" преобразуется в VK_7, а не VK_NUMPAD7.
VkKeyScanEx используется приложениями, которые отправляют символы с помощью WM_KEYUP и WM_KEYDOWN сообщений.
Заметка
Заголовок winuser.h определяет VkKeyScanEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |