使用::GetKeyState()返回一個short型的數,short型是16位有符號的數據類型,如果要查詢的鍵被按下,返回值最高位被置1,則這個數表示負數,所以可以用<0或>0來判斷。
0x8000是16進制數,用2進制表示為1000 0000 0000 0000, &是按位與
同樣,如果鍵被按下,返回值最高位為1,則1xxx xxxx xxxx xxxx & 1000 0000 0000 0000得到的結果為1,否則為0,同樣可以判斷最高位的值。
需要說明的是,::GetKeyState()只能在鍵盤消息處理程序中使用,因為它只有在線程從消息隊列中讀取鍵盤消息時才會報告被查詢鍵的狀態,如果需要在鍵盤消息處理程序以外查詢按鍵狀態,則需要使用::GetAsyncKeyState()來代替.