我需要组合 Alt +(左箭头、右箭头、向上箭头、向下箭头(键才能在 Win32 中移动窗口。
也许是这样的东西?
case WM_KEYDOWN:
{
if (GetKeyState(VK_MENU) < 0 && GetKeyState(VK_UP) < 0) {
}
}
我该怎么做?
在处理WM_SYSKEYDOWN消息期间,应使用 GetKeyState 函数。
case WM_SYSKEYDOWN:
{
if ( GetKeyState ( VK_MENU ) < 0 && GetKeyState ( VK_UP ) < 0 )
{
}
}
请注意,当用户通过(uni(代码位置输入字符时,VK_UP可能来自数字键盘。Windows 上的预期行为是数字字符输入独立于 NumLock 状态工作。所以你必须跟踪这个:只有在释放 Alt 后才对 Alt+Numpad 输入做出反应 Alt:如果到目前为止输入了多个键,请忽略它并让 TranslateMessage(( 将其转换为 WM_CHAR(希望在您的主消息循环中(。