GetAsyncKeyState功能确定在调用函数时键是上下还是关闭,以及在先前调用GetAsyncKeyState之后是否按下了该键。
SHORT GetAsyncKeyState(
INT 【V键】 | //虚拟键代码 |
); |
参数
【V键】
指定256个可能的虚拟键代码之一。
Windows NT:您可以使用左右区分常量来指定某些键。有关详细信息,请参阅备注部分。
Windows 95: Windows 95不支持在Windows NT上可用的左右正确的常量。
返回值
如果函数成功,则返回值指定自上次调用GetAsyncKeyState以来是否按下该键,以及该键当前是否正在上升或下降。如果最高有效位被设置,则该键被关闭,并且如果设置了最低有效位,则在先前调用GetAsyncKeyState之后按下该键。如果另一个线程或进程中的窗口当前具有键盘焦点,返回值为零。
Windows 95: Windows 95不支持左右区分常量。如果在Windows 95平台上使用这些常量调用GetAsyncKeyState,返回值为零。
备注
您可以使用虚拟密钥代码常量VK_SHIFT,VK_CONTROL和VK_MENU作为【V键】参数的值。这给出了SHIFT,CTRL或ALT键的状态,而不区分左和右。
Windows NT:您可以使用以下虚拟代码常量作为【V键】的值来区分这些键的左右实例:
VK_LSHIFT | VK_RSHIFT |
VK_LCONTROL | VK_RCONTROL |
VK_LMENU | VK_RMENU |
只有当您呼叫GetKeyboardState,SetKeyboardState,GetAsyncKeyState,GetKeyState和MapVirtualKey功能时,这些左和右区别常数才可用。
Windows 95: Windows 95不支持左右区分常量,并在使用这些常量时返回0。
GetAsyncKeyState功能与鼠标按钮配合使用。但是,它检查物理鼠标按钮的状态,而不是物理按钮映射到的逻辑鼠标按钮上。例如,调用GetAsyncKeyState(VK_LBUTTON)始终返回左侧物理鼠标按钮的状态,可以映射到左侧或右侧逻辑鼠标按钮。您可以通过调用确定系统当前的物理鼠标按键映射到逻辑鼠标按钮
GetSystemMetrics(SM_SWAPBUTTON)
如果鼠标按钮被交换,则返回TRUE。
也可以看看
GetKeyboardState, GetKeyState, GetSystemMetrics, MapVirtualKey, SetKeyboardState