当模式对话框处于活动状态时,检测主应用程序窗口上的 WM_CLOSE 事件?

Posted

技术标签:

【中文标题】当模式对话框处于活动状态时,检测主应用程序窗口上的 WM_CLOSE 事件?【英文标题】:Detecting the WM_CLOSE event on main application window when a modal dialog is active? 【发布时间】:2013-07-03 16:28:24 【问题描述】:

当模式对话框处于活动状态时,主应用程序窗口是否可以检测到 WM_CLOSE 事件?如果没有,是否有任何方法可以检测 WM_CLOSE 事件,因为对话框的事件处理程序也没有检测到它。

要自己观察这种行为,请打开记事本的“关于”菜单,然后右键单击任务栏中的记事本图标并选择“关闭窗口”选项,它将没有效果。

有谁知道当模式窗口处于活动状态时捕获应用程序的 WM_CLOSE 事件的方法?

【问题讨论】:

我认为禁用时不会发送任何内容。 Windows MessageBox ignoring WM_QUIT的可能重复 【参考方案1】:

通过右键单击任务栏中的应用程序图标选择“关闭”时,不会发送WM_CLOSE

发生的情况是应用程序的主窗口发送了一个WM_SYSCOMMAND,其中wParam 设置为SC_CLOSE

有关如何利用此“功能”的示例,请see my other answer on this here。

【讨论】:

以上是关于当模式对话框处于活动状态时,检测主应用程序窗口上的 WM_CLOSE 事件?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法检测浏览器窗口当前是否处于活动状态?

当设备的(android)键盘处于活动状态时,jquery 移动弹出窗口小部件不会移动

在缓冲模式下打开行编辑器时检测网格上的单击

当 UIPopoverController 处于活动状态时,UIWebView 未检测到点击

当带有glassEnabled的GWT DialogBox处于活动状态时,阻止页面滚动

Qt 中的主应用程序窗口和对话交互