函数功能:
GetKeyState 函数用于获取指定虚拟键的状态。
状态指的是该按键是否被按下,或者开关按键是否被打开(很多鱼油不清楚什么是开关按键,请瞄一下你们键盘上那个 Caps Lock 键)。
API 函数原型:
SHORT WINAPI GetKeyState( _In_ int nVirtKey );
参数解析:
|
参数 |
含义 |
|
nVirtKey |
1. 虚拟键 |
返回值:
返回值给出了指定虚拟键的状态,如下:
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




