Поделиться через


Функция VkKeyScanA (winuser.h)

[Эта функция заменена функцией VkKeyScanEx. Вы по-прежнему можете использовать VkKeyScan, однако если вам не нужно указывать раскладку клавиатуры.]

Преобразует символ в соответствующий код виртуального ключа и состояние shift для текущей клавиатуры.

Синтаксис

SHORT VkKeyScanA(
  [in] CHAR ch
);

Параметры

[in] ch

Тип: TCHAR

Символ, который необходимо преобразовать в код виртуального ключа.

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

Тип: SHORT

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

Возвращаемое значение Описание
1
Нажимается любой из клавиш SHIFT.
2
Нажимается клавиша CTRL.
4
Нажимается любой клавиши ALT.
8
Нажатие клавиши Hankaku
16
Зарезервирован (определяется драйвером раскладки клавиатуры).
32
Зарезервирован (определяется драйвером раскладки клавиатуры).
 

Если функция не находит ключ, который преобразуется в переданный код символов, то как байты низкого порядка, так и байты высокого порядка содержат –1.

Замечания

Для раскладок клавиатуры, использующих клавишу ALT вправо в качестве клавиши shift (например, французского раскладки клавиатуры), состояние shift представлено значением 6, так как клавиша ALT справа преобразуется внутри клавиши CTRL+ALT.

Переводы для числовой клавиатуры (VK_NUMPAD0 через VK_DIVIDE) игнорируются. Эта функция предназначена для перевода символов в нажатия клавиш только из основного раздела клавиатуры. Например, символ "7" преобразуется в VK_7, а не VK_NUMPAD7.

VkKeyScan используется приложениями, отправляющими символы с помощью WM_KEYUP и WM_KEYDOWN сообщений.

Заметка

Заголовок winuser.h определяет VkKeyScan как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)
библиотеки User32.lib
DLL User32.dll

См. также