c++ - 在模式对话框打开时禁用关闭应用程序(通过任务列表)

标签 c++ winapi windows-7

从 Windows 7 开始,即使屏幕上显示模态对话框,也可以通过任务列表关闭我的应用程序 -> 关闭。 在早期版本的 Windows 中,桌面任务行中的“关闭”按钮被禁用,我的应用程序中对话框的所有父窗口也是如此。 在 Win7(及更高版本)中,对话框的父窗口仍然被禁用,但任务栏中的 close() 项目不是。 这种情况(模式对话框在屏幕上时关闭)会导致我的应用程序崩溃。 (注意:我们说的是 >>100 个对话框和 >>100 个 .exe 文件。) 我什至很高兴完全删除任务栏中的这个关闭项目。

有什么想法吗?

最佳答案

关闭应用程序的信号是 WM_SYSCOMMAND message参数为 SC_CLOSE。如果你放入一个消息处理程序,你可以拦截请求并做任何你想做的事。

请注意两件事:应用程序在您希望它们关闭时不关闭对用户来说非常令人沮丧,并且始终可以通过任务管理器强制关闭应用程序。

关于c++ - 在模式对话框打开时禁用关闭应用程序(通过任务列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32120360/

相关文章:

c++ - QEventLoop 用于同步等待信号

css - 在 CSS 中使用 Sans-Serif 时的默认字体

c# - 声称类似于 Windows 任务栏的桌面空间的 WPF 应用程序

c++ - 避免缩小 bitset 模板的转换

c++ - 如何在 C++ 中为前向声明类型实现一元运算符重载?

c++ - 递归函数中的boost regex smatch表现得像一个静态变量

winapi - WindowsSDK_LibraryPath_* 错误

c# - 获取正在运行的应用程序的屏幕

c++ - `STRSAFE_NO_TRUNCATION` 和 `STRSAFE_NULL_ON_FAILURE` 值有什么区别?

java - 在 Win7 上以 SYSTEM 身份运行时写入临时目录失败