鍵盤是計算機的標準配件之一,也是基本的程序輸入裝置。雖然目前大多數游戲程序以鼠標或者使游戲桿來作為主要的輸入設備。相比之下,以鍵盤操縱游戲的方式似乎變得不太重要,但有時候還是會使用鍵盤來設計一些快速鍵的功能,例如跳過片頭動畫、結束游戲等
1、虛擬鍵碼
在早期非Windows系統的機器上,如果一般應用程序要取得使用者鍵盤的輸入,就必須去取得輸入按鍵的“掃描碼(Scan code)”。掃描碼由實際的鍵盤硬件所產生,但是由于不同國家不同區域所使用的鍵盤設備可能不同,因此Windows系統便發展了一套標準。其解決辦法就是對所有鍵盤的按鍵定義出一組通用的“虛擬鍵碼”,也就是說在Windows系統下所有的按鍵都會被視為虛擬鍵(包含鼠標鍵在內),而每一個虛擬鍵都有其對應的一個虛擬鍵碼。
2、鍵盤消息
Windows系統是一個消息驅動的環境,一旦使用者在鍵盤上進入輸入操作,那么系統便會接受到對應的鍵盤消息。下面是最常見的3中鍵盤消息:
WM_KEYDOWN:按下按鍵消息
WM_KEYUP:松開按鍵消息
WM_CHAR:字符消息
當某一按鍵被按下時,伴隨著這個操作所產生的是以虛擬鍵碼類型傳送的WM_KEYDOWN與WM_KEYUP消息。當程序接受到這些消息時,便可由虛擬鍵碼的信息來得知是哪個按鍵被按下。
此外,WM_CHAR則是當按下的按鍵為定義域ASCII中的打印字符時,便發出此字符消息。前面介紹的消息循環中的Translate()函數的作用便是當按下的按鍵為打印字符時,便將虛擬鍵碼消息進行轉換并且發出字符消息