我覆盖了 WM_CLOSE,现在如何从应用程序中出来
Posted
技术标签:
【中文标题】我覆盖了 WM_CLOSE,现在如何从应用程序中出来【英文标题】:I overrided WM_CLOSE, how to came out from application now 【发布时间】:2013-04-10 05:25:46 【问题描述】:我是 Windows 编程的新手,我编写了一个带有单个对话框的应用程序。在那之后,我覆盖了 CWnd::OnClose 以在退出应用程序之前做一些事情。之后我需要从应用程序中退出。但是如果我通过重写的方法发布或发送带有 WM_CLOSE 事件的消息,它也会被调用,所以现在如何从应用程序中退出。
class MyDlg : public CDialogEx
public:
afx_msg void OnClose();
;
BEGIN_MESSAGE_MAP(MyDlg , CDialogEx)
ON_WM_CLOSE ()
END_MESSAGE_MAP()
void MyDlg:: OnClose()
//what code I should write here to exit from application.
【问题讨论】:
【参考方案1】:在你做完你的事情之后写下这个:
__super::OnClose();
【讨论】:
这里的_super是什么意思,是指主窗口。 这是一个“Microsoft 特定”代码,允许调用基本方法。在标准 c++ 中,您将使用:CDialogEx::OnClose();
Microsoft 为您提供了一个快捷方式。你甚至可以使用Defaut();
- 另一个快捷方式以上是关于我覆盖了 WM_CLOSE,现在如何从应用程序中出来的主要内容,如果未能解决你的问题,请参考以下文章
C++ COM、Direct2D、Win32 和 WM_CLOSE
当模式对话框处于活动状态时,检测主应用程序窗口上的 WM_CLOSE 事件?