📄 subject_25819.htm
字号:
<p>
序号:25819 发表者:战鹰 发表日期:2002-12-26 08:52:04
<br>主题:是不是内存泄露的问题!!!
<br>内容:我开了一个计时器100MS刷新在对话框上绘制时间!可调用一次都使我的程序占用内存上涨4KB或8KB,可我的要释放的都释放了啊!代码没错!<BR>请各位大哥多多指教!!!<BR>/*<BR>* 函数名称:DrawVideoInfo()<BR>* 功能描叙:绘制时钟和视频状态信息<BR>* 参数: 无<BR>* 返回值: 无 <BR>*/<BR>void CCFVDDlg::DrawTimeInfo()<BR>{<BR>#ifdef _DEBUG<BR> CMemoryState memOld,memNew,memDif;<BR> memOld.Checkpoint();<BR>#endif<BR> CDC *pDC = GetDC();<BR> if (NULL == pDC)<BR> {<BR> TRACE(_T("GetDC failed!\n"));<BR> return ;<BR> }<BR> ASSERT(NULL != pDC);<BR> <BR> CDC dcMem;<BR> CBitmap bmMem;<BR><BR> dcMem.CreateCompatibleDC(pDC);<BR> bmMem.CreateCompatibleBitmap(pDC,INFO_CX,30);<BR><BR> ASSERT_VALID(&dcMem);<BR> ASSERT_VALID(&bmMem);<BR><BR> CBitmap *pOldBmp = dcMem.SelectObject(&bmMem);<BR> //创建高度为20的时间字符显示字体<BR> CFont fnText ;<BR> fnText.CreateFont(20, 0,0,0, FW_NORMAL, 0,0,0, DEFAULT_CHARSET,<BR> OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY,<BR> DEFAULT_PITCH | FF_DONTCARE, _T("Arial Narrow") /* 宋体 */);<BR> CFont *pOldFont = dcMem.SelectObject(&fnText);<BR> //时间字符显示位置<BR> CRect rcText;<BR> rcText.left = 0;<BR> rcText.top = 5;<BR> rcText.right = INFO_CX;<BR> rcText.bottom = 30;<BR> //填充背景色为黑色,设置背景模式为透明,并设置背景色为白色、文字显示为绿色<BR> dcMem.FillSolidRect(0,0,INFO_CX,INFO_CY,RGB(0,0,0)/* RGB(255,255,255) */);<BR> dcMem.SetBkMode(TRANSPARENT);<BR> dcMem.SetBkColor(RGB(255,255,255));<BR> dcMem.SetTextColor(CR_TEXT);<BR> <BR> CTime tmCurrTime = CTime::GetCurrentTime();<BR> CString sCurrTime = /* _T("2002-12-24 13:00:00") */tmCurrTime.Format("%Y-%m-%d %H:%M:%S");<BR> dcMem.DrawText(sCurrTime,&rcText,DT_CENTER | DT_VCENTER);<BR><BR> pDC->BitBlt(INFO_X,INFO_Y,INFO_CX,30,&dcMem,0,0,SRCCOPY);<BR> dcMem.SelectObject(pOldFont);<BR> dcMem.SelectObject(pOldBmp);<BR> fnText.DeleteObject();<BR> bmMem.DeleteObject();<BR> dcMem.DeleteDC();<BR> ASSERT(fnText.m_hObject == NULL);<BR> ASSERT(dcMem.m_hDC == NULL);<BR> ASSERT(bmMem.m_hObject == NULL);<BR>#ifdef _DEBUG<BR> memOld.DumpAllObjectsSince();<BR> memNew.Checkpoint();<BR> memDif.Difference(memOld,memNew);<BR> memDif.DumpStatistics();<BR>#endif<BR> return ;<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:擎天柱 回复日期:2002-12-26 19:22:49
<br>内容:没有ReleaseDC(pDC);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -