MFC中CBitmap、CBrush、CFont、CPalette、CPen、CRgn删除GDI对象问题

CBitmap、CBrush、CFont、CPalette、CPen、CRgn均继承自CGdiObject,GDI对象属于CGdiObject,该类的析构函数会释放GDI对象。因此,如果CPen等GDI对象在栈上创建,则不必要显式调用DeleteObject,如果在堆上创建,则在特定时刻需要删除它,以便执行其析构函数。

参考:

【1】GDI对象继承关系图

【2】MFC源码

 【3】MFC程序设计(第2版)

 

posted @ 2024-12-25 14:20  快雪  阅读(95)  评论(0)    收藏  举报