一个画图程序内存泄露,高手给看下,附有源码

kongxin12 kongxin12 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
void COScopeCtrl::InvalidateCtrl()
{
_CrtDumpMemoryLeaks();
//初始化参数
//初始化位置参数
CBrush *oldbrush;
CPen *oldPen ;
CRect rect[7];
// rect=new CRect[7];

CString strTemp ;
double numtemp;
double numinterval;
//填充CRgn的画刷
CBrush brA, brB;
//设置字体颜色
CFont nunberfont, *oldFont ;
CFont nunberfont1;
CFont nunberfont2;
// 绘制刻度变量
int i,x5,y5,x6,y6;
int biger_interval=4; //大刻度数
//绘制屏蔽线
CPen temppen/*,temppen1*/;
//绘制边框
CPen form_pen;
//表盘边界
int x1,x2,x3,x4,y1,y2,y3,y4;
SetCentre();
CheckB();

.......

// in case we haven't established the memory dc's
CClientDC dc(this) ;

// if we don't have one yet, set up a memory dc for the grid
if (m_dcindex.GetSafeHdc() == NULL)
{
m_dcindex.CreateCompatibleDC(&dc) ; //内存DC
m_bitmapidex.CreateCompatibleBitmap(&dc, m_rectClient.right-m_rectClient.left, m_rectClient.bottom-m_rectClient.top) ;
m_pbitmapOldindex = m_dcindex.SelectObject(&m_bitmapidex) ;
}
else
{
m_dcindex.SelectObject(m_pbitmapOldindex);
m_dcindex.DeleteDC();
m_bitmapidex.DeleteObject();
m_pbitmapOldindex->DeleteObject();

m_dcindex.CreateCompatibleDC(&dc) ; //内存DC
m_bitmapidex.CreateCompatibleBitmap(&dc, m_rectClient.right-m_rectClient.left, m_rectClient.bottom-m_rectClient.top) ;
m_pbitmapOldindex = m_dcindex.SelectObject(&m_bitmapidex) ;

}
// m_dcindex.CreateCompatibleDC(&dc) ; //内存DC
// m_bitmapidex.CreateCompatibleBitmap(&dc, m_rectClient.right-m_rectClient.left, m_rectClient.bottom-m_rectClient.top) ;
// m_pbitmapOldindex = m_dcindex.SelectObject(&m_bitmapidex) ;

m_dcindex.SetBkColor (m_crBackColor) ;
m_dcindex.FillRect(m_rectClient, &m_brushBack) ;
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
kongxin12
界面 15,976 成员 115,866 内容