我在VS中编写了一个控制台程序来响应鼠标事件。我想点击时打印一些东西,所以我写下这段代码:
int keyPressed(int key){
return (GetAsyncKeyState(key) & 0x8000 != 0);
}
void Mouse::click(){
while (1)
{
if (keyPressed(VK_LBUTTON) || keyPressed(VK_RBUTTON)){
cout << "click\n";
}
}
}
int main(){
Mouse mouse;
while (1){
mouse.click();
}
}
当我左键单击时,&#34;点击&#34;没有打印,但如果我按下键盘或右键单击,则会打印出来。
发生了什么事?我该怎么处理?谢谢〜
答案 0 :(得分:0)
!=
has a higher precedence than &
,因此在0x8000 != 0
生效之前计算&
。
使用括号 - 将该行更改为:
return (GetAsyncKeyState(key) & 0x8000) != 0;