⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_25819.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:25819 发表者:战鹰 发表日期:2002-12-26 08:52:04
<br>主题:是不是内存泄露的问题!!!
<br>内容:我开了一个计时器100MS刷新在对话框上绘制时间!可调用一次都使我的程序占用内存上涨4KB或8KB,可我的要释放的都释放了啊!代码没错!<BR>请各位大哥多多指教!!!<BR>/*<BR>*&nbsp;&nbsp;&nbsp;&nbsp;函数名称:DrawVideoInfo()<BR>*&nbsp;&nbsp;&nbsp;&nbsp;功能描叙:绘制时钟和视频状态信息<BR>*&nbsp;&nbsp;&nbsp;&nbsp;参数:&nbsp;&nbsp;&nbsp;&nbsp; 无<BR>*&nbsp;&nbsp;&nbsp;&nbsp;返回值:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无&nbsp;&nbsp;&nbsp;&nbsp;<BR>*/<BR>void CCFVDDlg::DrawTimeInfo()<BR>{<BR>#ifdef _DEBUG<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMemoryState memOld,memNew,memDif;<BR>&nbsp;&nbsp;&nbsp;&nbsp;memOld.Checkpoint();<BR>#endif<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC *pDC = GetDC();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (NULL == pDC)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE(_T("GetDC failed!\n"));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(NULL != pDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC dcMem;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap bmMem;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.CreateCompatibleDC(pDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;bmMem.CreateCompatibleBitmap(pDC,INFO_CX,30);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT_VALID(&amp;dcMem);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT_VALID(&amp;bmMem);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap *pOldBmp = dcMem.SelectObject(&amp;bmMem);<BR>&nbsp;&nbsp;&nbsp;&nbsp;//创建高度为20的时间字符显示字体<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFont fnText ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;fnText.CreateFont(20, 0,0,0, FW_NORMAL, 0,0,0, DEFAULT_CHARSET,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT_PITCH | FF_DONTCARE, _T("Arial Narrow") /* 宋体 */);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFont *pOldFont = dcMem.SelectObject(&amp;fnText);<BR>&nbsp;&nbsp;&nbsp;&nbsp;//时间字符显示位置<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRect rcText;<BR>&nbsp;&nbsp;&nbsp;&nbsp;rcText.left = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;rcText.top = 5;<BR>&nbsp;&nbsp;&nbsp;&nbsp;rcText.right = INFO_CX;<BR>&nbsp;&nbsp;&nbsp;&nbsp;rcText.bottom = 30;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//填充背景色为黑色,设置背景模式为透明,并设置背景色为白色、文字显示为绿色<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.FillSolidRect(0,0,INFO_CX,INFO_CY,RGB(0,0,0)/* RGB(255,255,255) */);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.SetBkMode(TRANSPARENT);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.SetBkColor(RGB(255,255,255));<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.SetTextColor(CR_TEXT);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CTime tmCurrTime = CTime::GetCurrentTime();<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString sCurrTime = /* _T("2002-12-24 13:00:00")&nbsp;&nbsp; */tmCurrTime.Format("%Y-%m-%d %H:%M:%S");<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.DrawText(sCurrTime,&amp;rcText,DT_CENTER | DT_VCENTER);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;BitBlt(INFO_X,INFO_Y,INFO_CX,30,&amp;dcMem,0,0,SRCCOPY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.SelectObject(pOldFont);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.SelectObject(pOldBmp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;fnText.DeleteObject();<BR>&nbsp;&nbsp;&nbsp;&nbsp;bmMem.DeleteObject();<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.DeleteDC();<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(fnText.m_hObject == NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(dcMem.m_hDC == NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(bmMem.m_hObject == NULL);<BR>#ifdef _DEBUG<BR>&nbsp;&nbsp;&nbsp;&nbsp;memOld.DumpAllObjectsSince();<BR>&nbsp;&nbsp;&nbsp;&nbsp;memNew.Checkpoint();<BR>&nbsp;&nbsp;&nbsp;&nbsp;memDif.Difference(memOld,memNew);<BR>&nbsp;&nbsp;&nbsp;&nbsp;memDif.DumpStatistics();<BR>#endif<BR>&nbsp;&nbsp;&nbsp;&nbsp;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 + -