【问题标题】:Distinquishing ALT+F4 vs. Taskbar Close events区分 ALT+F4 与任务栏关闭事件
【发布时间】:2012-03-29 19:38:37
【问题描述】:

我想确定是通过ALT+F4 还是通过从应用程序的任务栏图标中选择“关闭窗口”触发了 OnClose。到目前为止,我能想到的只是这样的测试:

void ...::OnClose() 
{
     if (::GetKeyState( VK_MENU ))
     {
          // Alt F4 triggered close
     }
}

有没有更好的办法?

加分项:有没有办法专门处理 windows 7 任务栏关闭窗口菜单项?

【问题讨论】:

  • 你可以监听WM_SYSKEYDOWN/VK_F4直接处理事件,而不是让DefWindowProc把它变成标准的关闭事件。
  • 你为什么在乎? ...请记住,可以通过按 ALT+Space+C 来关闭窗口
  • 我关心我自己的原因。 :)

标签: windows visual-studio-2010 visual-c++ mfc


【解决方案1】:

WM_CLOSE 由任务管理器发送。 当您按下 ALT_F4 或从任务栏按钮的系统菜单中发送 WM_SYSCOMMAND 时,参数 SC_CLOSE。

【讨论】:

    【解决方案2】:

    您应该使用RegisterHotkey API 处理ALT+F4 热键。运行自定义代码,然后关闭窗口。

    【讨论】:

    • 不要对局部问题使用全局解决方案。
    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多