c语言getasynckeystate,GetAsyncKeyState用法

GetAsyncKeyState用于获取按键的物理状态,无视映射,返回值的高位判断按键是否按下。KEYDOWN和KEYUP宏用于判断。本文介绍了如何利用该函数检查虚拟键状态,并探讨了物理键状态与逻辑键状态的区别。
摘要由CSDN通过智能技术生成

GetAsyncKeyState

就是调用GetAsyncKeyState函数得到某个键的状态,然后判断返回值的最高位是不是1,如果是表示这个处于按下状态

1、&与操作,&0x8000就是判断这个返回值的high-order bit(高位字节)

2、如果high-order bit是1,则是按下状态,否则UP状态

#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)

#define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

意思你应该看的懂吧。

说明一下,带的参数要是虚拟打描码!

比如下的码是 VK_DOWN ,ESC是 VK_ESCAPE

GetAsyncKeyState 取异步键状态。

比如,一般情况下,你可以在操作系统的控制面板中设置鼠标左右键的映射(实际的鼠标左键可以映射成右键点击事件),或者通过程序也可以这样设置,这样就产生了物理键状态(实际的),逻辑键状态(虚拟的,)。使用 GetKeyState,GetKeyboardState,等函数得到的就是逻辑键状态。

而GetAsyncKeyState 读取的是物理键状态,也是就是不管你怎么鼠标键盘映射,它只读取实际的按键状态。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值