Win32键盘组合

时间:2017-04-12 10:14:26

标签: c++ visual-studio winapi keyboard

我需要结合Alt +(向左箭头,向右箭头,向上箭头,向下箭头)键来移动Win32中的窗口。

这样的事,也许?

case WM_KEYDOWN:
    {
        if (GetKeyState(VK_MENU) < 0 && GetKeyState(VK_UP) < 0) {
        }
    }

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您应该在处理WM_SYSKEYDOWN消息时使用GetKeyState函数。

case WM_SYSKEYDOWN:
{
    if ( GetKeyState ( VK_MENU ) < 0 && GetKeyState ( VK_UP ) < 0 )
    {

    }
}

答案 1 :(得分:0)

请注意,当用户通过(uni)代码位置输入字符时,VK_UP 可能来自数字键盘。 Windows 上的预期行为是数字字符输入独立于 NumLock 状态工作。因此,您必须跟踪这一点:仅在释放 Alt 后才对 Alt+Numpad 输入做出反应:如果到目前为止输入了多个键,请忽略它并让 TranslateMessage() 将其转换为 WM_CHAR(希望在您的主消息循环中)。