创建MFC单文档程序Cformview中初始化了一个Dialog,如何将这个Dialog销毁
时间: 2024-03-22 15:42:43 浏览: 126
mfc单文档应用程序实现了formview界面切换和dialog布局
3星 · 编辑精心推荐
要销毁 MFC 单文档程序中的 CFormView 中初始化的 Dialog,可以调用 CFormView 类的 DestroyWindow 函数。在 CFormView 类的析构函数中调用 DestroyWindow 函数可以确保在销毁 CFormView 对象时,同时销毁其初始化的 Dialog。
以下是一个示例代码:
```c++
class CMyFormView : public CFormView
{
public:
CMyFormView() : CFormView(IDD_MY_DIALOG) {}
virtual ~CMyFormView() {}
protected:
virtual void PostNcDestroy()
{
delete this;
}
afx_msg void OnDestroy()
{
CFormView::OnDestroy();
DestroyWindow();
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyFormView, CFormView)
ON_WM_DESTROY()
END_MESSAGE_MAP()
```
在上面的代码中,我们在 CMyFormView 类中重载了 PostNcDestroy 函数和 OnDestroy 函数。在 PostNcDestroy 函数中,我们使用 delete 关键字销毁 CFormView 对象。在 OnDestroy 函数中,我们先调用 CFormView 类的 OnDestroy 函数,然后调用 DestroyWindow 函数销毁 Dialog。
当 CFormView 对象被销毁时,MFC 会自动调用 PostNcDestroy 函数,从而触发销毁 Dialog 的过程。
阅读全文