创建非模态对话框释放内存的问题

    若给非模态对话框设置了父窗口,则应该在父窗口中销毁对话框窗口,释放对话框的C++指针。 m_pDlg:应用程序中对话框的指针,初始值为NULL;     CDlg是对话框类名称;     m_listWnd:应用程序中存储CDlg的指针     当应用程序打开非模态对话框时,因要保存其类指针,所以必须在对话框被销毁时,释放自己的资源。这里分两种情况:1.对于只打
摘要由CSDN通过智能技术生成

    若给非模态对话框设置了父窗口,则应该在父窗口中销毁对话框窗口,释放对话框的C++指针。

 

m_pDlg:应用程序中对话框的指针,初始值为NULL;

     CDlg是对话框类名称;

     m_listWnd:应用程序中存储CDlg的指针

 

    当应用程序打开非模态对话框时,因要保存其类指针,所以必须在对话框被销毁时,释放自己的资源。这里分两种情况:

1.对于只打开一次的非模态对话框。

   需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的。
   还有一个必须重载的函数就是PostNcDestroy,这也是一个虚函数,通常的非模态对话框是用类的指针,通过new创建的,这就需要在PostNcDestroy函数中delete掉这个指针。

   这样,其父窗口就不需要代码来管理该非模态对

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值