GetAsyncKeyState()用法

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.

你可能感兴趣的:(vc++,vc++)