社区
工具平台和程序库
帖子详情
#define KEY_DOWN(vk_code)(GetAsyncKeyState(vk_code)&0X8000)?1:0
bomengqaz123
2010-04-10 10:06:21
#define KEY_DOWN(vk_code)(GetAsyncKeyState(vk_code)&0X8000)?1:0
哪位大牛帮看看这个函数是嘛意思! 谢谢啊;
在后面程序中有调用:
if (KEY_DOWN(VK_SHIFT))
speed=speed*4;
...全文
755
7
打赏
收藏
#define KEY_DOWN(vk_code)(GetAsyncKeyState(vk_code)&0X8000)?1:0
#define KEY_DOWN(vk_code)(GetAsyncKeyState(vk_code)&0X8000)?1:0 哪位大牛帮看看这个函数是嘛意思! 谢谢啊; 在后面程序中有调用: if (KEY_DOWN(VK_SHIFT)) speed=speed*4;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
waiwai07143224
2012-03-18
打赏
举报
回复
2
0x8000二进制值是1000000000000000,两者进行与运算
即如果GetAsyncKeyState(vk_code)最高位是1,则取值1,
即此时KEYDOWN 后者正好相反
函数GetAsyncKeyState确定在调用它时某个按键处于弹起还是按下的,以及此按键是否在上一次调用GetAsyncKeyState之后(“又”)按下过(重复也算按下)。
这句话的完整意思是:预定义了一个KEYDOWN参数为vk_code 他的定义的含义是判断一个键是否被按下(GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0如果按下了就是1,没有按下就是0
然后其它地方用的时候直接用KEYDOWN(vk_code)判断这个键是否按下,相反弹起来是1按下是0
bomengqaz123
2010-04-13
打赏
举报
回复
怎么没人回答啊,自己up一下
wingzero520
2010-04-11
打赏
举报
回复
检查某键是否按下
bomengqaz123
2010-04-11
打赏
举报
回复
各位请讲一下GetAsyncKeyState函数和0X8000在这里的意思!
谢谢
xxphddz
2010-04-10
打赏
举报
回复
up Key
bomengqaz123
2010-04-10
打赏
举报
回复
不懂,我菜鸟,麻烦您详细一点,这个函数实现了嘛功能?
jbz001
2010-04-10
打赏
举报
回复
替换成:
if((GetAsyncKeyState(VK_SHIFT)&0X8000)?1:0)
三元运算符。
为什么Get
Async
Key
State
()&
0x8000
0x8000
& Get
Key
State
(
VK
_SHIFT); 这句是判断是否有按下shift键 为什么Get
Async
Key
State
()& 首先说明,有好多程序或书上是
0x8000
f,这个f不是十六进制的f而是代表浮点数。其实& 8000才是本质。小鱼我整理后自己写了点东西,总结一下 首先介绍一下几个概念: 按位与运算符"&":是双目运算符,其功能是参与运算的两数各...
Windows编程之使用Get
Async
Key
State
()函数为什么要(&
0x8000
)?
Windows编程之使用Get
Async
Key
State
()函数为什么要(&
0x8000
)? 先来看看Get
Async
Key
State
()函数的原型: SHORT Get
Async
Key
State
(int virtual_
key
); 它的返回值是SHORT类型,也就是short int,占2个字节,共16位,如果返回值的最高位是1则表示该键被按下,否则该键被松开。 若该键被松开,只需满足最高位为0,,假如返回 0000 0000 0000 0000, 如果像这样: if (Get
Async
K
虚拟键值转化,为什么 Get
Key
State
(
VK
_SHIFT) &
0x8000
;
为什么Get
Async
Key
State
()& ; 三个概念: 虚键:指的是非字母可以明确表示的键.(例如ESC BS TAB NumLock等,有对应的虚键列表); 逻辑键状态:使用Get
Key
State
,Get
Key
board
State
,等函数得到的逻辑键状态,模拟按下按键; 物理键状态:在操
Get
Async
Key
State
()&
0x8000
是什么意思
0x8000
& Get
Key
State
(
VK
_SHIFT); 这句是判断是否有按下shift键 为什么Get
Async
Key
State
()& 首先说明,有好多程序或书上是
0x8000
f,这个f不是十六进制的f而是代表浮点数。其实& 8000才是本质。小鱼我整理后自己写了点东西,总结一下 首先介绍一下几个概念: 按位与运算符"&":是双目运算符,其功能是参与运算的两数各对应的二
关于Get
Async
Key
State
首先介绍一下几个概念: 按位与运算符"&":是双目运算符,其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:0x11 & 0x12(即0001 0001 & 0001 0010)的结果是0x10(0001 0000);(关于vs取反参考附) 虚键:指的是非字母可以明确表示的键.(例如ESC ...
工具平台和程序库
24,851
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章