这段代码哪边需要释放啊?有内存泄露,如何释放
Locked=true;
try
{ if(pDC==NULL)
return;
Graphics g(pDC->m_hDC);
//图的坐标(含外框)
CRect rt;
pDC->GetWindow()->GetClientRect(&rt);
GraphT=rt.top+MarginGraphT;
GraphB=rt.bottom-MarginGraphB;
GraphL=rt.left+MarginGraphL;
GraphR=rt.right-MarginGraphR;
//计算区域(不含外框)
xSrc=GraphL+MarginL;
ySrc=GraphB-MarginB;
xWidth=(GraphR-MarginR)-(GraphL+MarginL);
yHeight=(GraphB-MarginB)-(GraphT+MarginT);
Bitmap bmp(rt.Width(),rt.Height());
DrawAxis(&bmp,GraphType);
//画下面的三个颜色示例
if(GraphType==0)
{
DrawLegend(&bmp);
}
if(DataCount!=0)
{
//画图
switch(GraphType)
{
case 0:
//画线
DrawLineChart(&bmp);
break;
case 1:
DrawBarChart(&bmp);
break;
case 2:
DrawLineChartByPos(&bmp);
default:
break;
}
}
//g.DrawImage(&bmp,0,0,GraphR-GraphL+100,GraphB-GraphT+100);
HBITMAP hbmp;
bmp.GetHBITMAP(Color(255, 255,255, 255),&hbmp);
CBitmap *pbmp=CBitmap::FromHandle(hbmp);
if(!pbmp)
{
exit(0);
}
BITMAP bmpInfo;
pbmp->GetBitmap(&bmpInfo);
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMemory.SelectObject(pbmp);
pDC->BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY);
pbmp->DeleteObject();
dcMemory.SelectObject(pOldBitmap);
}
catch(...)
{
}
Locked=false;