2017-07-17 251 views
-4

编写简单的C++程序并使用GetAsyncKeyState触发不同的函数。例如,使用按钮(VK_MENU)时,一切正常。但是当我使用VK_LBUTTON时,只能检测到1/100按键。GetAsyncKeyState未检测到鼠标输入

我检测线简直是

if(GetAsyncKeyState(VK_LBUTTON)) { do stuff; } 

任何人都可以说明为什么出现这种情况?

+1

关于'GetAsyncKeyState'的通常提醒:它不是一个获取用户输入的正确方法,否则就有失去事件的风险,并且不能正确地与线程的输入队列同步。使用常规的鼠标/键盘输入消息。 –

+0

为什么?我需要一个可以在后台运行的函数,因为我的窗口没有关注。正确使用GetAsyncKeyState每次都为我工作 – Theocracy

+0

如果您需要(全局)热键,请使用适合该作业的工具:[RegisterHotKey](https://msdn.microsoft.com/en-us/library/windows/desktop /ms646309.aspx)。 – IInspectable

回答

-3

我解决了这个问题。这是由于我的代码中的另一个错误。实际的GetAsyncKeyState正在正确执行。

+1

这并不能真正为问题提供有用的答案。最好删除问题和答案。 –