GDI对象的释放
1,像CBitmap,CPen,CBrush等CGdiObject对象,它们的生命周期结束时,释构函数会自动调用DeleteObject成员函数清除所占内存吗,我个人感觉是会,因为如果定义了一个局部CBitmap对象,把它用于图形标记菜单,是不会出现的,是这样的吗?MSDN上说得感觉不清不楚,还请各位高手们指教.
2,看到CGdiOBject对象定义了一个Detach函数,这个函数是用以CGdiObject局部对象中,让对象的释构函数不致于清除GDI对象,
就如上面所说的,这样就可以把一个局部CBitmap对象用于图形标记菜单,但如果这样的话,那对象释构时不清除内存,GDI对象所占的内存不是会一直存在,造成内存泄漏?在CMenu中倒是有用,因为在程序结束时会自动清除当前所用的菜单,可CMenu也不是从CGdiObject继承的,为什么CGdiObject对象也会定义这个函数?