GetKeyState函数详解

函数只有一个参数,即虚拟键码。返回值为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值