区分 ALT+F4 与任务栏关闭事件
Posted
技术标签:
【中文标题】区分 ALT+F4 与任务栏关闭事件【英文标题】:Distinquishing ALT+F4 vs. Taskbar Close events 【发布时间】: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 来关闭窗口
我关心我自己的原因。 :)
【参考方案1】:
WM_CLOSE 由任务管理器发送。 当您按下 ALT_F4 或从任务栏按钮的系统菜单中发送 WM_SYSCOMMAND 时,参数 SC_CLOSE。
【讨论】:
【参考方案2】:您应该使用RegisterHotkey API 处理ALT+F4
热键。运行自定义代码,然后关闭窗口。
【讨论】:
不要对局部问题使用全局解决方案。以上是关于区分 ALT+F4 与任务栏关闭事件的主要内容,如果未能解决你的问题,请参考以下文章