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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章