2 oyj1020 Oyj1020 于 2014.01.09 15:53 提问

关于非模态对话框的创建释放与释放

创建了一个对话框,父窗口为桌面窗口
m_pDecorBMapDlg = new CDecorBMapDlg;
m_pDecorBMapDlg->Create(CDecorBMapDlg::IDD,GetDesktopWindow());

然后将它销毁
m_pDecorBMapDlg->DestroyWindow();
SAFE_DELETE(m_pDecorBMapDlg);

然后再创建就出错了

1个回答

mevip
mevip   2014.01.09 16:52

再创建是
1、
m_pDecorBMapDlg = new CDecorBMapDlg;
m_pDecorBMapDlg->Create(CDecorBMapDlg::IDD,GetDesktopWindow());
还是
2、
m_pDecorBMapDlg->Create(CDecorBMapDlg::IDD,GetDesktopWindow());

1应该没问题,2会报错。
正确做法是1

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
非模态对话框的指针释放的理解
最近项目
MFC 创建非模态对话框和销毁过程
今天项目中遇到的问题,记录下来,做个总结。 一个简单的目的是创建一个非模态对话框并在对话框关闭后将其销毁。 这里的销毁包括:销毁对话框对象资源和对话框对象指针; 首先说创建对话框: 一、模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。 点击模态对话框中的OK按钮,模态对话框会被销
CDialog 非模态对话框的创建和销毁
非模态对话框需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的。   还有一个必须重载的函数就是PostNcDestroy,这也是一个虚函数,通常的非模态对话框是用类的指针,通过new创建的,这就需要在PostNcDestroy函数中delete掉
CDialog::Create()创建非模态对话框框,若未销毁造会成内存泄露的解决办法
CDialog::Create()创建非模态对话框框,若未销毁造成内存泄露,代码如下: CTestView类中有成员变量CSetDBSource* m_SetDBSource;,CSetDBSource的基类为CDialog, m_SetDBSource = new CSetDBSource; m_SetDBSource->Create(IDD_SETDB_DLG,this); m_S
Qt销毁非模态对话框
很多时候需要非模态对话框:
非模态对话框内存释放问题
对于一个非模态子对话框的内存释放,一般的处理方法是在OnClose()函数中添加DestroyWindow(),然后在PostNcDestroy()中delete this。  当我们为了使得生成的非模态子对话框最小化的时候在任务栏上显示出来,创建的时候就要以桌面为父窗口,如下:pdlg->Create( IDD_DIALOG_CHILD, GetDes
非模态对话框的创建和销毁过程
创建非模态对画框的过程:见http://blog.csdn.net/xiaominggunchuqu/article/details/49895325   一个非模态的MFC 窗口的销毁过程: 假设自己通过new创建了一个窗口对象pWnd,然后pWnd->Create。则销毁窗口的调用次序: 1.      手工调用pWnd->DestroyWindow(); // 一般在对话框类中的
下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存
最易懂的设计模式解析:单例模式(Singleton) 前言今天我来全面总结一下Android开发中最常用的设计模式 - 单例模式。  关于设计模式的介绍,可以看下我之前写的:1分钟全面了解“设计模式”目录1. 引入1.1 解决的是什么问题之前说过,设...http://www.xiami.com/collect/207573283?spm=a1z1s.2929273.1561564893.2.v
非模态对话框的释放
非模态对话框相对模态对话框的创建和释放都相对繁琐点。研究一下非模态对话框的释放问题:From MSDN:Modal dialog boxes are normally created on the stack frame and destroyed when the function that created them ends. The dialog object’s destructo
非模态对话框的创建及使用
非模态对话框的创建及使用