GetAsyncKeyState函數用于獲取指定虛擬鍵的狀態。它的聲明如下:
SHORT WINAPI GetAsyncKeyState(
int vKey
);
該函數的參數vKey是一個整數,表示要獲取狀態的虛擬鍵碼。
函數返回一個SHORT類型的值,表示虛擬鍵的狀態。如果返回值的最高位(最高位為1的情況下返回值為負數)為1,則表示鍵當前是按下的狀態;如果最高位為0,則表示鍵當前是釋放的狀態。
以下是一個使用GetAsyncKeyState函數的例子:
#include <windows.h>
#include <iostream>
int main() {
while (true) {
// 檢查鍵盤上的A鍵是否按下
if (GetAsyncKeyState('A') & 0x8000) {
std::cout << "A鍵被按下" << std::endl;
}
// 檢查鼠標左鍵是否按下
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) {
std::cout << "鼠標左鍵被按下" << std::endl;
}
}
return 0;
}
該例子中,使用了一個無限循環來不斷檢查鍵盤和鼠標的狀態。通過GetAsyncKeyState函數獲取按鍵狀態,然后使用位運算符&判斷最高位是否為1,以確定按鍵是否按下。如果按鍵按下,就輸出相應的信息。