鱼C论坛

 找回密码
 立即注册
查看: 4183|回复: 0

[API档案] GetKeyState

[复制链接]
发表于 2016-3-13 16:49:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
函数功能:

GetKeyState 函数用于获取指定虚拟键的状态。

状态指的是该按键是否被按下,或者开关按键是否被打开(很多鱼油不清楚什么是开关按键,请瞄一下你们键盘上那个 Caps Lock 键)。


API 函数原型:

  1. SHORT WINAPI GetKeyState(
  2.   _In_ int nVirtKey
  3. );
复制代码


参数解析:

参数 含义
nVirtKey 1. 虚拟键
2. 如果指定的虚拟键是一个字母或数字(A~Z,a~z,0~9),该参数必须设置该字符的 ASCII 值
3. 对于其他键,该参数必须是一个虚拟键代码(参考:Virtual-Key Codes
4. 如果使用的是非英语键盘布局,在 A~Z 和 0~9 范围的虚拟键值被定义为绝大多数字符键。例如,对于德语键盘布局来说,ASCII 值为 O(0x4F)代表 "o" 键,而 VK_OEM_1 指带变音的 "o" 键


返回值:

返回值给出了指定虚拟键的状态,如下:

1. 如果返回值是负数(最高位置 1),说明该按键被按下,否则为正;

2. 如果返回值的最低位是 1,表示按键开关被打开。


备注:

1. 开关按键,例如 Caps Lock 按键,如果返回值的最低位是 1,那么该按键表示被打开,则按键上的小灯(如果有的话)对应是亮着的。

2. 该函数并非实时地检查键盘状态。更确切地说,它反映了到目前为止的键盘状态,并包含了正在被处理的当前消息(在大多数情况下这正是你想要的函数)。如果你确实需要了解某个键的当前实时状态,可以使用 GetAsyncKeyState 函数获取这一信息。

3. 应用程序可以使用 GetKeyState 函数来响应一个由键盘输入产生的消息。此时该程序获得的是在输入消息生成时该键位的状态。

4. 应用程序可以使用 Virtual-Key Codes 的宏定义作为 nVirtKey 参数的值。比如使用 VK_SHIFT, VK_CONTROL, 或 VK_MENU 可以响应对应的 SHIFT, CONTROL 或 ALT 按键的状态(不区分左右)。当然,如果应用程序需要区分具体是左边的按键被按下还是右边,可以使用更精确的定义:

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 21:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表