VC++中MFC窗口对象的清除(2)

分类: VC.NET   出处:iocblog整理  更新时间:2008-07-26   添加到收藏  

具有自动清除功能的窗口类,一般在堆中创建:

主框架窗口类(直接或间接从cframewnd类派生)

视图类(直接或间接从cview类派生)

从某种程度上来说,mfc的"服务到家"使初学者有些找不着北.不过,不得不承认:mfc干的很漂亮!

谈到这里,我们应该明白c++里一条重要的准则:用destroywindow清除窗口对象,不要用"delete".

 对于不具备自动清除功能的窗口类使用"delete"时,"delete"先调用析构函数里的destroywindow,由于在析构函数中,虚机制不起作用,这里只能调用本地版本(cwnd类)destroywindow函数,显然这不是我们想要的.对于有自动清除功能的窗口类,好象问题更严重一点,前面提到了重载的postncdestroy已经含有了"delete this",这样c++对象就被释放了两次.

 很多人认为,vc++同vb一样,是一个完全可视化的产品,不用在看c++的书了.通过上面对窗口对象的清除的介绍,可以发现,windows程序是与windows紧密结合的,而且牵涉到很多c++的知识(如虚函数、析构函数、new操作符等).要对vc++有进一步理解,必须理解windows机制,深入学习c++.(来源www.iocblog.net)

上一页 [1] [2]


Tag: MFC



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。