尝试在 Windows 7 的任务栏缩略图中使用关闭按钮关闭窗口时尝试设置“你想保存吗”对话框(启用 aero peek)。
在处理 WM_CLOSE 时使用 MessageBox() 不起作用。 MessageBox 不会显示,直到您将鼠标光标移到缩略图之外,从而禁用 aero peek。
许多应用程序都有这种错误行为,所以这可能是 Windows 7 中的设计缺陷,但对于某些程序(Word、记事本、Visual Studio 等)它可以正常工作,所以我想知道他们使用了什么技巧(或者以编程方式“退出”aero peek-mode 需要什么)。
Windows 7 附带的小型“录音机”应用程序也有同样的问题(如果您在没有保存的情况下录制了一些内容并尝试使用缩略图关闭按钮将其关闭)...
最佳答案
我整理了一个小应用程序来重现这个问题。通过在调用 MessageBox 之前调用 SetForegroundWindow,我能够成功地让消息框出现。
case WM_SYSCOMMAND:
if (wParam == SC_CLOSE)
{
SetForegroundWindow(hWnd);
MessageBox(hWnd, L"Are you sure you want to exit", L"Close Window", MB_OK);
}
else
{
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
关于c++ - 从任务栏缩略图关闭按钮打开处理 WM_CLOSE 时不显示 MessageBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911511/