gdi+如何释放资源

最近在VC6.0中使用GDI+绘图。通过计时器使图形反复重绘,在Windows任务管理器中发现内存在不断增长。查了MSDN上说GDI+资源(Pen、Brush、Graph... 最近在VC6.0中使用GDI+绘图。通过计时器使图形反复重绘,在Windows任务管理器中发现内存在不断增长。查了MSDN上说GDI+资源(Pen、Brush、Graphics等)用完后要释放。
请问GDI+资源的释放方法是什么?
void CMSP_view::OnDraw(CDC* pDC)
{
Graphics graphics(pDC);

Pen ConfirmPen(Gdiplus::Color::Red, 2);

CPoint pixP1,pixP2;
pixP1 = CPoint(10, 10);
pixP2 = CPoint(100,100);
graphics.DrawLine(&ConfirmPen,pixP1.x, pixP1.y, pixP2.x, pixP2.y);

//如何释放Graphics 和Pen (?)
}
展开
 我来答
匿名用户
2013-04-19
展开全部
GDI+通常生命期一结束自动会释放内存。我之前用GDI+做的一个程序,也是内存占用增长很快,一般最小化一下再恢复内存占用就会减下去些。之后查了下据说是因为GDIPLUS.DLL的资源底层是由操作系统管理的,为了效率而减少了内存的操作次数。对于OnDraw,最好把Graphics和Pen改成静态的或全局的,可以减轻每次构造和析构的成本,也会大大减少内存增长的速度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Eking2000
2014-01-03 · TA获得超过1228个赞
知道小有建树答主
回答量:1471
采纳率:0%
帮助的人:731万
展开全部
声明成指针类型,pen就可以delete掉了,graphic应该不需要释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
安远城主
2013-07-12
知道答主
回答量:20
采纳率:50%
帮助的人:2.1万
展开全部
请问解决没有?
我也遇到这个问题了,困扰很久了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sxn10050812
2013-04-20 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:123万
展开全部
ReleaseDC,DeleteObject
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式