注册 登录
编程论坛 VC++/MFC

关于画线

pizibaidu 发布于 2014-01-12 22:10, 509 次点击
孙鑫老师的教程里,讲用cpen画线,
CPen pen(PS_DOT,1,RGB(0,255,0));
CClientDC dc(this);
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);
有个地方不是很明白,他说画完线后要复原之前的画笔,
pOldPen一直都是指向新创建的cpen画笔的呀,
那还怎么复原之前的画笔呢
1 回复
#2
yuccn2014-01-13 08:03
CPen pen(PS_DOT,1,RGB(0,255,0));
CClientDC dc(this);
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);

第一行红的就是选择了新的pen,同时用oldppen 保存了原来的
第二行红的就是复原。

“pOldPen一直都是指向新创建的cpen画笔的呀” 多查下msdn啊,看下api的说明。pOldPen 是指向原来的,由SelectObject 返回。
1