【问题标题】:How to get modifier key event(alt+ctrl+shift),如何获取修饰键事件(alt+ctrl+shift),
【发布时间】:2015-10-13 02:55:37
【问题描述】:

如果有人正在研究 win32 API。请查看以下问题。 在win32编程中同时按下修饰键(alt + ctrl + shift)时,我需要调用一个函数。但是当同时按下修饰键时,我不知道如何处理此事件。 如果有人有任何想法,请发布。

【问题讨论】:

标签: winapi c++11


【解决方案1】:

要获取密钥的状态,有一个 API GetKeyState。借助此功能,您可以检查键是向下还是向上。

例如:

if (GetKeyState(VK_SHIFT)& 0x8000)
   //Key is pressed

你也可以这样组合检查:

if (GetKeyState(VK_SHIFT)& 0x8000 && GetKeyState(VK_CONTROL)& 0x8000)
   //ctrl+shift key is pressed.

【讨论】:

  • 不清楚何时调用请求的函数?您会在什么情况下获得这些键的状态?
  • (GetKeyState(VK_SHIFT) & 0x8000) 实际上意味着 SHIFT 键被锁定。不要混用 keypresskeydown
【解决方案2】:

您应该处理WM_KEYDOWNWM_KEYUP 消息,并跟踪所有这些键的状态(向上或向下):VK_SHIFTVK_CONTROLVK_MENU

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2010-11-19
    • 2023-03-18
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多