一般,我们用非模态对话框都是全局的,也就是通过new来创建,是在heap上的,而不是在stack上的。
这样我们当然还要通过delete 来销毁对象,不然可是有内存泄漏的。那么我们什么时候delete这个对象呢?
在msdn上面我们可以看到微软提供的方法是,
我们要重载PostNcDestroy(),即我们要实现CMyDialog::PostNcDestroy(),内容如下
CMyDialog::PostNcDestroy() { CDialog::PostNcDestroy(); delete this; }这样的话,我们的类就会Auto-Cleanup了。
在析构函数中调用DestroyWindow
CxxxDlg::~CxxDlg()
{
DestroyWindow ();
}