SelectObject选择画笔问题

嘻嘻AND嘿嘿 嘻嘻AND嘿嘿 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我看孙鑫的视频教程作图的时候遇到这个函数,看了msdn不大明白。
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_ptBegin=point;//m_ptBegin是类的成员,类型为CPoint

CView::OnLButtonDown(nFlags, point);
}

void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));//红色
CClientDC dc(this);
CPen* pOldPen=dc.SelectObject(&pen);//保存原始的CPen,即黑色的CPen
dc.MoveTo(m_ptBegin);
dc.LineTo(point);
dc.SelectObject(pOldPen);//恢复原始的CPen
}

SelectObject返回值为先前的画笔颜色,刚开始画笔为黑色,执行完CPen pen之后画笔为红色,然后执行SelectObject后画笔为黑色,然后作图,那做出来的图应该是黑色的啊?然后执行SelectObject,就是返回黑色之前的颜色?
还有把CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CClientDC dc(this);这两句代码调换以后,运行的程序会变得非常慢,画一个直线得等半分钟,这是什么原因啊?
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部