模式对话框与非模式对话框的销毁

  

  模式对话框是用EndDialog销毁的,而非模式对话框则要用到DestroyWindow(个人以为非模式对话框比较类似一般普通的窗口,因此可以用DestroyWindow来销毁,而模式对话框则是“真正的”对话框,要用到对话框特定的EndDialog来销毁)。于是在非模式对话框的销毁,一般用到一下代码:

 

 //主窗口关闭,则对话框也随之销毁
 //因为非模式对话框的创建有时候需要new出来(如果创建临时对象,又不用DoModule,则会很快自动销毁),此时
 //要这样处理,否则会导致内存泄漏。
 
 void CNModalDlg::PostNcDestroy() 
 {
   delete this;
   CDialog::PostNcDestroy();
 }
  

 //对话框自己关闭
 
 void COkDlg::OnClose() 
 {
   DestroyWindow();
 }
 

 

 

 

posted @ 2010-05-27 15:25  jiaozebo  阅读(460)  评论(0编辑  收藏  举报