在做图的时候,非要用新设备替换旧设备吗?
CClientDC dc(this);
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);
pOldPen这指针默认就存在吗?
还有?
为什么OldPen一定要被替换才行呢?
一直对此不解
[解决办法]
不调用dc.SelectObject(pOldPen);的话
dc一直使用的是pen
[解决办法]
否则pen所占用的GDI资源无法销毁,会造成资源泄漏。
[解决办法]
不会造成内存泄漏(Memory Leak),但有可能造成资源泄漏(Resource Leak)。
这两句话的作用只是用来恢复原来的画笔和画刷。如果你的程序是要长时间使用,并且这个函数是要反复被使用的,那么,建议你加上去.如果只是一般性的使用,价不加也无所谓.
(我就因为没有加,字的颜色把WINDOWS的颜色都改变了..........但是没有内存泄漏)
[解决办法]
pOldPen这指针默认就存在吗?
==========================
你是想问原来dc中是不是有一个画笔吧?dc中应该有一个默认的画笔.
为什么OldPen一定要被替换才行呢?
==========================
不替换也行,只不过你一直用的就是新的画笔就是了.