MFC中GDI对象泄露问题 http://bbs.csdn.net/topics/390415174
展开全部
CDC *pDC = GetDC();
CBrush brush, *oldbrush;
brush.CreateSolidBrush(RGB(255,255,0));
oldbrush = pDC->SelectObject(&brush);
RECT rc; rc.left = 30; rc.top = 20; rc.bottom = rc.top + 80; rc.right = rc.left + 80;
pDC->Rectangle(&rc);
pDC->SelectObject(oldbrush);
brush.DeleteObject();
ReleaseDC(pDC);
代码没有问题,不会造成内存泄露。
多了一个刷子也不是问题,因为本身CDC对象就应该有一个默认pen和默认brush,如果之前没有,会在这里增加一个,但之后再反复操作,就不会增加了。
CBrush brush, *oldbrush;
brush.CreateSolidBrush(RGB(255,255,0));
oldbrush = pDC->SelectObject(&brush);
RECT rc; rc.left = 30; rc.top = 20; rc.bottom = rc.top + 80; rc.right = rc.left + 80;
pDC->Rectangle(&rc);
pDC->SelectObject(oldbrush);
brush.DeleteObject();
ReleaseDC(pDC);
代码没有问题,不会造成内存泄露。
多了一个刷子也不是问题,因为本身CDC对象就应该有一个默认pen和默认brush,如果之前没有,会在这里增加一个,但之后再反复操作,就不会增加了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询