一个基于对话框的程序,如果在主对话框相对应的类里面添加一个子对话框类的指针成员变量,假设m_pDlg;
在某个地方执行:m_pDlg = new CMyDlg; m_pDlg->Create(IDD_DLG,this);
子对话框关闭后怎么释放掉m_pDlg指向的资源(子对话框的关闭时间是无法确定的)?

解决方案 »

  1.   

    在子对话框的析构函数中加入:delete this;
      

  2.   

    子对话框DoModal返回后就可以释放m_pDlg了.
      

  3.   

    可以使用完了在m_pDlg声明类里释放~
      

  4.   

    干嘛要释放呀, 难道你只要显示一次? 这种情况, 我一般把m_pDlg定义为主对话框的成员变量, 在主对话框的OnInitDialog里把了对话框创建好, 等要显示的时间, 调用ShowWindow, 等程序退出的里时候在Delete m_pDlg;
      

  5.   

    在不用的时候delete 掉他即可。
      

  6.   

    我没有把意思表达好,再说明几点:
    1.我说的子对话框是非模态的
    2.我不知道子对话框什么时候消失(用户什么时候点击关闭我是不知道的)
    3.最好能在子对话框中销毁内存资源,因为可能在主对话框中多次new
    4.我希望能够创建多个同样的子对话框,而不只是有一个,也可能一个也没有
      

  7.   

    可以在对话框detroy后,释放掉.
    你重载OnDestroy()并在调用CDialog::OnDestroy()后,再delete 就可以了