GetKeyState ,該函數(shù)檢取指定虛擬鍵的狀態(tài)。該狀態(tài)指定此鍵是UP狀態(tài),DOWN狀態(tài),還是被觸發(fā)的(開關(guān)每次按下此鍵時進(jìn)行切換)。

功能原理

函數(shù)原型:SHORT GetKeyState(int nVirtKey);

各部份參數(shù)

函數(shù):

nVrtKey:定義一虛擬鍵。若要求的虛擬鍵是字母或數(shù)字(A~Z,a~z或0~9),nVirtKey必須被置為相應(yīng)字符的ASCII碼值,對于其他的鍵,nVirtKey必須是一虛擬鍵碼。若使用非英語鍵盤布局,則取值在ASCIIa~z和0~9的虛擬鍵被用于定義絕大多數(shù)的字符鍵。例如,對于德語鍵盤格式,值為ASCII0(OX4F)的虛擬鍵指的是"0"鍵,而VK_OEM_1指"帶變音的0鍵"

返回值:返回值給出了給定虛擬鍵的狀態(tài),狀態(tài)如下:

若高序位為1,則鍵處于DOWN狀態(tài),否則為UP狀態(tài)。

若低序位為1,則鍵被觸發(fā)。例如CAPS LOCK鍵,被找開時將被觸發(fā)。若低序位置為0,則鍵被關(guān)閉,且不被觸發(fā)。觸發(fā)鍵在鍵盤上的指示燈,當(dāng)鍵被觸發(fā)時即亮,鍵不被觸發(fā)時即滅。

備注:當(dāng)給定線程從它的消息隊列中讀鍵消息時,該函數(shù)返回的鍵狀態(tài)發(fā)生改變。該狀態(tài)井不反映與硬件相關(guān)的中斷級的狀態(tài)。使用SetkeyboardState可獲取這一信息。

欲檢取所有虛擬鍵狀態(tài)信息,可以使用SetKeyboardState函數(shù)。

應(yīng)用程序可以使用虛擬鍵碼常數(shù)VK_SHIFT,VK_CONTROL和VK_MENU作為nVirtKey參數(shù)的值。它給出shift,ctrl或alt鍵的值而不區(qū)分左右鍵,應(yīng)用程序也可以使用如下的虛擬鍵碼常數(shù)作nVirtKey的值來區(qū)分前述鍵的左鍵、右鍵的情形。

VK_LSHIFT,VK_RSHIFT;VK_LCONTROL,VK_RCONTROL;VK_LMENU,VK_RMENU

僅當(dāng)應(yīng)用程序調(diào)用GetKeyboardSlate,SetKeyboardState,GetAsyncKeyState;GetKeyState和MapVirtualKey函數(shù)時,才可用這些區(qū)分左右鍵的常數(shù)。

Windows CE:GetKeyState函數(shù)僅能用于檢查如下虛擬鍵的DOWN狀態(tài)。

VK_LSHIFT,VKRSHIFT,VK_LCONTROL;VK_RCONTROL;VK_LMENU,VK_RMENU

GetKeyState函數(shù)只能用于檢查VK_CAPITAL虛擬鍵的觸發(fā)狀態(tài)。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.I及以上版本;頭文件:winuser.h;庫文件:user32.lib。