马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
函数功能:
GetKeyState 函数用于获取指定虚拟键的状态。
状态指的是该按键是否被按下,或者开关按键是否被打开(很多鱼油不清楚什么是开关按键,请瞄一下你们键盘上那个 Caps Lock 键)。
API 函数原型:
SHORT WINAPI GetKeyState(
_In_ int nVirtKey
);
参数解析:
参数 | 含义 | 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)所有,转载请注明来源。
|