一个画图程序内存泄露,高手给看下,附有源码
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) ;
{
_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) ;
...全文
相关推荐
MFC画图程序源码
标签"画图"和"源码"表明这个压缩包包含了一个用于图形绘制的应用程序源代码。开发者可以通过阅读和分析源码来学习如何在MFC框架下进行图形操作。压缩包内的文件列表:1.
深度思考:ThreadLocal是否存在内存泄漏问题,如何防止内存泄漏?
你真的了解如何防止内存泄漏吗
一个简易画图程序源码
【标题解析】"一个简易画图程序源码"指的是这个压缩包中包含了一个使用C#编程语言编写的简单图形绘制应用程序的原始代码。
C#简易画图程序源码
【标题】:“C#简易画图程序源码”在编程领域,C#是一种广泛应用的面向对象的编程语言,尤其在Windows应用开发中占有重要地位。
画图板(C#源码)(有点像Windows画图)
本篇文章将详细探讨一个用C#编写的简易画图板项目,这个项目名为"GraphicalCS",它的设计灵感来源于Windows操作系统内置的“画图”程序。


界面
