首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

这个画图程序有有关问题吗?每次运行都提示内存泄露

2012-08-01 
请高手看看这个画图程序有问题吗?每次运行都提示内存泄露void clPlot::DrawLegend(CDC * dc){CPen pen(PS_

请高手看看这个画图程序有问题吗?每次运行都提示内存泄露
void clPlot::DrawLegend(CDC * dc)
{
CPen pen(PS_SOLID,0,RGB(0,0,0));
CPen *old = dc->SelectObject(&pen);

dc->Rectangle(m_legendRect);
dc->Rectangle(m_legendRect_two);
dc->Rectangle(m_legendRect_thr);
dc->Rectangle(m_legendRect_four);
dc->Rectangle(m_legendRect_five);

for(int i=0;i<17;i++)
{
CPen pen1(m_primarylegends[i].m_istyle, 1, m_primarylegends[i].m_color);
CPen *oPen = dc->SelectObject(&pen1);
dc->MoveTo(lLengendCoordinate[i][0],lLengendCoordinate[i][2]);
dc->LineTo(lLengendCoordinate[i][1],lLengendCoordinate[i][2]);

CString tempone;
tempone.Format("%d",left_right_edge[i][0]);
CString temptwo;
temptwo.Format("%d",left_right_edge[i][1]);

CString temp_str=tempone +" "+DrawSerie[i].m_szTitle +" "+ temptwo;
dc->TextOut(lLengendCoordinate[i][3],lLengendCoordinate[i][4],temp_str);

pen1.DeleteObject();
dc->SelectObject(old);

}//追踪到这儿提示错误
dc->SelectObject(old);
}

[解决办法]
先SelectObject(old)再DeleteObject()就好了

热点排行