#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 打赏 收藏 转发到动态 举报
写回复
用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)


三元运算符。

24,851

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧