函数只有一个参数,即虚拟键码。返回值为SHORT类型,即短整型。GetKeyState函数是用来获取指定的虚拟键码的按键的状态。得到的状态表示按键是按下了还是弹起的,还是状态切换(大小写状态、数字键盘锁状态)。
一、判断按键是否被按下。通过高位来进行判断,高位为1表示按键按下,高位为0表示按键弹起。具体方法如下:
方法1:如果高位为1表示按键按下,此时返回值为负数(<0);如果高位为0表示按键弹起,此时返回值为正数(>0)。所以可以通过返回值与0比较进行判断按键是否按下。
方法2:如果高位为1表示按键按下,此时返回值为1xxx xxxx xxxx xxxx,与0x8000(二进制 形式:1000 0000 0000 0000)进行按位与操作,结果为1;反之,如果按键弹起,按位与后结果为0。
也可定义如下宏:#define IsKeyPressed(nVirtKey) ((GetKeyState(nVirtKey) & (1<<(sizeof(SHORT)*8-1))) != 0);
IsKeyPressed(nVirtKey)函数返回值为TRUE,则表示按键按下;反之表示按键弹起。
二、判断按键切换状态(指示灯状态)。通过低位来进行判断,低位为1表示按键是切换状态,亮灯;低位为0表示按键是非切换状态,灭灯。具体方法如下:
#define IsKeyToggled(nVirtKey) ((GetKeyState(nVirtKey) & 1) != 0); IsKeyToggled(nVirtKey)函数返回值为TRUE表示按键处于切换状态,亮灯;返回值为FALSE,表示按键处于非切换状态,灭灯。
————————————————
版权声明:本文为CSDN博主「小米的修行之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012372584/article/details/53837899