既然我们已分配内存就堆,我们必须将它删除时,非模式对话框是摧毁,否则我们很快会遇到很大的麻烦与内存泄漏,左,右和中心。当对话框是摧毁了最后一则留言,我们收到处理类是WM_NCDESTROY消息。该OnNcDestroy功能函数是引用,这在原来调用虚拟函数PostNcDestroy 。这正是我们可以delete我们的非模式对话框。 First Call调查的基类的功能函数,以便它是否自己的清理。步骤/方法
void CModeLess::PostNcDestroy()
{
CDialog::PostNcDestroy();
delete this;
}
void CModeLess::PostNcDestroy()
{
CDialog::PostNcDestroy();
delete this;
}
解决方案 »
- 新手求助!!安装vc无法运行
- VC远程自动安装程序如何制作,有源码更好!100分!!!!
- 共享段中定义变量访问问题,大虾帮忙!
- 程序不响应windows消息/事件是怎么回事?
- 如何用CFileDialog一次打开或选中多个文件
- 如何用另外的用户身份运行一个程序?
- 总是遇到:dll19.obj:error LNK2005: "class CSock* m_psock"(?m_psock@@3PAVCCSock@@A) already defined in CSock.obj。急!
- UP有分!!SCM的调试!!UP有分!!
- 请用过CButtonST的朋友看过来!
- 关于msxml运用问题好像少加了什么
- IE插件的实现
- MFC设置透明Edit Control后的更新绘制问题
不是网上释放非模式对话框的方法吗 在销毁函数里delete this
但是 不按照网上添加这个消息 我在关闭非模式对话框的时候,打断点也能进入非模式的对话框的析构函数里啊
那在destory消息delete this 有何意义呢????????????
等等,PostNcDestroy什么意思?不应该是OnNcDestroy吗
那是MS推荐的做法
不是网上释放非模式对话框的方法吗 在销毁函数里delete this
但是 不按照网上添加这个消息 我在关闭非模式对话框的时候,打断点也能进入非模式的对话框的析构函数里啊
在哪里delete都行吗?可以不再OnNcDestroy消息里delete吗
2. 这个消息是窗口收到的最后一个消息,也就是收到这个消息后,这个窗口就没用了。
这是最早的delete不会出错的地方。因此大多推荐在这个地方delete.你那种方式,代码只有那么几个类,因此是无所谓的。
再加个类,引用了非模式窗口。
那么你还要在这个类的析构函数里面再写一次delete。
而在OnNcDestroy,就不需要再写。