VkKeyScanA 函数 (winuser.h)

[此函数已被 VkKeyScanEx 函数取代。 但是,如果不需要指定键盘布局,仍可以使用 VkKeyScan

将字符转换为当前键盘的相应虚拟键代码和移位状态。

语法

SHORT VkKeyScanA(
  [in] CHAR ch
);

参数

[in] ch

类型:TCHAR

要转换为虚拟密钥代码的字符。

返回值

类型:SHORT

如果函数成功,则返回值的低序字节包含虚拟键代码,高阶字节包含移位状态,这可以是以下标志位的组合。

返回值 描述
1
按下了 SHIFT 键。
2
按下任意一个 Ctrl 键。
4
按下任一 ALT 键。
8
按下了 Hankaku 键
16
保留(由键盘布局驱动程序定义)。
32
保留(由键盘布局驱动程序定义)。
 

如果函数找不到转换为传递的字符代码的键,则低序和高阶字节都包含 –1。

言论

对于使用右键 Alt 键作为 Shift 键(例如法语键盘布局)的键盘布局,Shift 状态由值 6 表示,因为右侧 Alt 键在内部转换为 Ctrl+Alt。

将忽略数字键盘(VK_NUMPAD0VK_DIVIDE)的翻译。 此函数仅用于将字符从主键盘部分转换为击键。 例如,字符“7”转换为VK_7,而不是VK_NUMPAD7。

VkKeyScan 由使用 WM_KEYUPWM_KEYDOWN 消息发送字符的应用程序使用。

注意

winuser.h 标头将 VkKeyScan 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll

另请参阅