我用的是win7 64位。我使用 GetKeyboardState() 来获取键盘状态。
BYTE keyState[256];
GetKeyboardState(keyState);
BOOL leftButtonClicked = GetKeyState(VK_LBUTTON);
如果在主 wnd 内部单击,一切正常,但如果在主 wnd 外部单击,leftButtonClicked 仍然为 true。
msdn说,
应用程序可以调用此函数来检索所有虚拟键的当前状态。当线程从其消息队列中删除键盘消息时,状态会发生变化。状态不会随着键盘消息被发布到线程的消息队列而改变,也不会随着键盘消息被发布到其他线程的消息队列或从其他线程的消息队列中检索而改变。
但是 main wnd 没有收到 WM_LBUTTONDOWN,那么为什么这个函数会得到错误的结果呢?还是我误解了什么?
谢谢。