CImage内存泄漏解决。 创建CImage和释放。MFC7.0

加载和释放
#include <atlimage.h>

int  captionHeight,  = 234;
CImage  consumeBkImg;       //分项能耗背景
consumeBkImg.Load(_T("res/server/consumeBk.jpg"));
consumeBkImg.Destroy();
//没有Destroy()会有内存泄漏。Detach();不行的。


//创建CImage,一般会在OnPaint()中,做双缓冲用。
CImage    fakeImge;
fakeImge.Create(consumeBkImg.GetWidth(), captionHeight, consumeBkImg.GetBPP());   //创建一个伪CImage做缓冲用
HDC fakeDC = fakeImge.GetDC();
CDC fakeCDC;
fakeCDC.Attach(fakeDC);

fakeCDC.Detach();
fakeImge.ReleaseDC();     //拿到的DC要释放,不释放第二次刷新会崩溃。
fakeImge.Destroy();

posted @ 2011-08-17 16:49  奥雷连诺  阅读(3215)  评论(0编辑  收藏  举报