这段代码中有资源泄漏现象吗?
void CImageStatic::OnPaint()
{
CPaintDC dc(this); // device context for painting
if(hbitmap == NULL)
{
GetClientRect(&lRect);
lRect.NormalizeRect();
dc.FillSolidRect(&lRect , RGB(0xfe ,0xfe ,0xfe));
CFont font,*oldfont;
//创建字体
font.CreateFont(12,
0,0,0,FW_BOLD,0,0,0,GB2312_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH|FF_SWISS,_T("宋体"));
oldfont=dc.SelectObject(&font);
dc.DrawText("无照片" , &lRect , DT_CENTER | DT_VCENTER | DT_SINGLELINE );
//释放字体
dc.SelectObject(oldfont);
font.DeleteObject();
}
else
{
//获取图片格式
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap *poldBitmap=(CBitmap*)dcMem.SelectObject(hbmp);
GetClientRect(&lRect);
lRect.NormalizeRect();
//显示位图
dc.StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
&dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(&poldBitmap);
}
// TODO: Add your message handler code here
// Do not call CStatic::OnPaint() for painting messages
}
{
CPaintDC dc(this); // device context for painting
if(hbitmap == NULL)
{
GetClientRect(&lRect);
lRect.NormalizeRect();
dc.FillSolidRect(&lRect , RGB(0xfe ,0xfe ,0xfe));
CFont font,*oldfont;
//创建字体
font.CreateFont(12,
0,0,0,FW_BOLD,0,0,0,GB2312_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH|FF_SWISS,_T("宋体"));
oldfont=dc.SelectObject(&font);
dc.DrawText("无照片" , &lRect , DT_CENTER | DT_VCENTER | DT_SINGLELINE );
//释放字体
dc.SelectObject(oldfont);
font.DeleteObject();
}
else
{
//获取图片格式
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap *poldBitmap=(CBitmap*)dcMem.SelectObject(hbmp);
GetClientRect(&lRect);
lRect.NormalizeRect();
//显示位图
dc.StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
&dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(&poldBitmap);
}
// TODO: Add your message handler code here
// Do not call CStatic::OnPaint() for painting messages
}
...全文
相关推荐
C++内存泄漏检测原理+代码
在C++编程中,内存泄漏是一个严重的问题,它会导致程序消耗过多的系统资源,最终可能使程序崩溃或系统性能下降。本文档将深入探讨C++内存泄漏检测的原理,并提供相关的代码示例。
通过matlab仿真模拟频谱泄漏现象带来的危害
**通信系统性能下降**:在无线通信中,频谱泄漏可能导致相邻频道的干扰,降低通信质量。5. **频谱利用率降低**:在资源有限的频谱资源分配中,频谱泄漏可能导致频谱资源的浪费。
如何排查Java内存泄漏?看完我给跪了!
内存泄漏通常发生在程序中,当不再需要的对象仍然被引用,导致它们无法被垃圾收集器清理。这种现象可能导致资源浪费,系统性能下降,甚至引发OutOfMemoryError。
JVM模拟内存泄漏代码
堆内存泄漏是指程序中的对象在不再被使用后,由于某些原因没有被垃圾收集器回收,导致堆内存持续占用,最终可能导致系统资源耗尽。常见的堆内存泄漏场景包括:1.
详解SpringCloudGateway内存泄漏问题
同时,修改请求头的代码也需要注意内存的使用,避免内存泄漏的问题。相关知识点1. Spring Cloud Gateway 是什么?


图形处理/算法
