1)if(GetAsyncKeyState(VK_LSHIFT))
这样写是不对的。
GetAsyncKeyState的返回值表示两个内容,一个是最高位bit的值,代表这个键是否被按下,一个是最低位bit的值,代表在上次调用
GetAsyncKeyState后,这个键是否被按下。
应该是
if(GetAsyncKeyState(VK_LSHIFT)&&ox8000)
(2)SHORT GetKeyState(int nVirtKey);
SHORT GetAsyncKeyState(int vKey);
BOOL GetKeyboardState(PBYTE lpKeyState);
三个取key status的函数的最大区别是:
第一个:是从windows消息队列中取得键盘消息,返回key status.
第二个:是直接侦测键盘的硬件中断,返回key status.
第三个:是当从windows消息队列中移除键盘消息时,才才返回key status.
GetAsyncKeyState()用法
最新推荐文章于 2021-07-31 08:23:18 发布