当我左键单击VS中的控制台时,为什么控制台程序会中断?

时间:2016-10-19 02:58:40

标签: c++ visual-studio click mouseevent console-application

我在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;没有打印,但如果我按下键盘或右键单击,则会打印出来。

发生了什么事?我该怎么处理?谢谢〜

1 个答案:

答案 0 :(得分:0)

!= has a higher precedence than &,因此在0x8000 != 0生效之前计算&

使用括号 - 将该行更改为:

return (GetAsyncKeyState(key) & 0x8000) != 0;