例如,调用 GetAsyncKeyState (VK_LBUTTON) 始终返回左物理鼠标按钮的状态,无论它是映射到左逻辑鼠标按钮还是右逻辑鼠标按钮。 可以通过调用 GetSystemMetrics(SM_SWAPBUTTON)来确定系统的物理鼠标按钮到逻辑鼠标按钮的当前映射。如果已交换鼠标按钮,则返回 TRUE。
不過,它會檢查實體滑鼠按鍵的狀態,而不是實體按鈕所對應的邏輯滑鼠按鍵上。 例如,呼叫GetAsyncKeyState(VK_LBUTTON) 一律會傳回左實體滑鼠按鍵的狀態,不論它是否對應至左或右邏輯滑鼠按鍵。 您可以呼叫GetSystemMetrics(SM_SWAPBUTTON)來判斷系統目前實體滑鼠按鍵與邏輯滑鼠按鍵的對應。
MSDN上给出了例子很恰当For example, the call GetAsyncKeyState(VK_LBUTTON) always returns the state of the left physical mouse button, regardless of whether it is mapped to the left or right logical mouse button.也就是说如果你重新设置了映射,GetAsyncKeyState还是只读取物理状态; GetAsyncKeyState的返回值...
- VK_LBUTTON:左键,对应鼠标左键。 - VK_RBUTTON:右键,对应鼠标右键。 - VK_CANCEL:取消键,对应键盘上的 Esc 键。 2.鼠标事件参数 除了上述键参数外,getasynckeystate 函数还支持一些鼠标事件参数。这些参数表示鼠标按键的状态。以下是几个常用的鼠标事件参数: - MOUSEEVENTF_LEFTDOWN:鼠标左键按下。 - MOUSEEVE...
GetAsyncKeyState参数详解GetAsyncKeyState函数的参数表如下:vKey: Long类型,表示要测试的虚拟键的键码,如VK_LBUTTON(左键)或VK_RBUTTON(右键)。 值得注意的是,当你使用这些键码时,按钮状态会根据实际按下情况报告。例如,即使调用了SwapMouseButton函数改变了鼠标位置,按钮的状态仍会反映实际按下的...
#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 << "鼠标左...
VK_LBUTTON1鼠标左键 VK_RBUTTON2鼠标右键 VK_CANCEL3Cancel VK_MBUTTON4鼠标中键 VK_XBUTTON15 VK_XBUTTON26 VK_BACK8Backspace VK_TAB9Tab VK_CLEAR12Clear VK_RETURN13Enter VK_SHIFT16Shift VK_CONTROL17Ctrl VK_MENU18Alt VK_PAUSE19Pause ...
例如,函数调用GetAsyncKeystate(VK_LBUTTON)总是返回物理的鼠标左按钮的状态,而不管该按钮映射为逻辑上的左按钮,可以调用GetsystemMetrics(SM_SWAPBUTON)来确定系统当前物理鼠标按钮与逻辑鼠标按钮的对应关系,当鼠标按钮被左右交换后,函数返回TRUE。 可以使用虚拟键码常数VD_SHIFT,VK_CONTROL,VK_MENU作为vKey参数的值,...
GetAsyncKeyState 函数 上下左右键 回车键等的判断,函数原型SHORTGetAsyncKeyState(intvKey);例:若判断回车键if(GetAsyncKeyState(VK_RETURN)&0x8000)( return0;)按下Enter返回值0; 附其他常用键位:VK_LBUTTON 鼠标左键 0x01