怎么没有代码?
另外,就NEW了一个而已,不delete没有关系,
程序退出时,系统会自动回收该内存。
另外,就NEW了一个而已,不delete没有关系,
程序退出时,系统会自动回收该内存。
解决方案 »
- GetClientRect和GetWindowRect
- ATL ACITVEX中做一个小界面怎么实现
- MFC简单代码求助
- 用vc++.net 2003开发一个网络流量的实时的曲线图 各个协议
- 关于 IHTMLElement 的 get_tagName的问题。
- 在线等待!关于Button颜色的改变
- VC6里想调用notepad.exe 同时带上参数,我想不出现控制台窗口怎么办啊,在线等待
- 如何设置CImageList对象的图像当前索引为指定的图标?并取得索引值?(等急用呀)
- 请教ado.net写入数据库的问题
- 如何让一个应用程序的主窗口自动失去焦点?
- 如何将C++程序变为实用的程序呢?
- 请给我一个答案,谢谢!!
重栽CTreeView的postNcDestroy(大概是这个函数了),这个重栽函数不要做任何事情,即屏蔽掉delete this.可以多看看<深入浅出MFC>,如果想深究,最好直接看看MFC的源代码
执行的顺序是先Destroy再NCDestroy(销毁非客户区)然后才是析构函数。
如果你跟踪MFC的源代码,可以发现CView的postNcDestroy中只有一句话
就是delete this。一般的视图都是从CView中派生出来的,所以执行结果
大致相当。由此可以发现一个问题,如果你是new一个视图话,不用delete也不会出错,
但是如果你是定义了一个视图的对象,然后创建它,那么再退出的时候,
可能发生错误,因为对象是自动释放的,如果在NCDestroy中delete,那么
就会出现重复释放。所以当你定义的是视图对象,而不是new一个视图的时候
就需要重载一个什么都不做的postNcDestroy函数。