模式对话框与非模式对话框的销毁
模式对话框是用EndDialog销毁的,而非模式对话框则要用到DestroyWindow(个人以为非模式对话框比较类似一般普通的窗口,因此可以用DestroyWindow来销毁,而模式对话框则是“真正的”对话框,要用到对话框特定的EndDialog来销毁)。于是在非模式对话框的销毁,一般用到一下代码:
//主窗口关闭,则对话框也随之销毁
//因为非模式对话框的创建有时候需要new出来(如果创建临时对象,又不用DoModule,则会很快自动销毁),此时
//要这样处理,否则会导致内存泄漏。
void CNModalDlg::PostNcDestroy()
{
delete this;
CDialog::PostNcDestroy();
}
//对话框自己关闭
void COkDlg::OnClose()
{
DestroyWindow();
}
void CNModalDlg::PostNcDestroy()
{
delete this;
CDialog::PostNcDestroy();
}
//对话框自己关闭
void COkDlg::OnClose()
{
DestroyWindow();
}