SelectObject选择画笔问题
我看孙鑫的视频教程作图的时候遇到这个函数,看了msdn不大明白。
SelectObject返回值为先前的画笔颜色,刚开始画笔为黑色,执行完CPen pen之后画笔为红色,然后执行SelectObject后画笔为黑色,然后作图,那做出来的图应该是黑色的啊?然后执行SelectObject,就是返回黑色之前的颜色?
还有把CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CClientDC dc(this);这两句代码调换以后,运行的程序会变得非常慢,画一个直线得等半分钟,这是什么原因啊?
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);这两句代码调换以后,运行的程序会变得非常慢,画一个直线得等半分钟,这是什么原因啊?
...全文
相关推荐
Viusal Basic 桌面绘图
Visual Basic 桌面绘图 使用API实现 在桌面上绘制圆形
[Win32]画笔和规则区域填充
1. DC设备环境中的对象: 1) DC中总共包含6种图形设备对象:画笔、画刷、
C# NXOpen 二次开发实战:利用SelectionManager.SelectObject构建智能选择过滤器
本文深入探讨了C# NXOpen二次开发中SelectionManager.SelectObject方法的应用,详细解析如何构建智能选择过滤器以提升大型装配体操作效率。通过实战案例展示了多类型选择、属性过滤等高级技巧,帮助开发者实现精确对象选择,优化工作流程。
别再硬编码了!用C# NXOpen的SelectObject方法,5分钟搞定UG/NX智能选择对话框
本文探讨了在UG/NX二次开发中如何利用C# NXOpen的SelectObject方法实现智能选择对话框,避免硬编码的常见问题。通过工厂模式、链式调用和异常处理优化,开发者可以大幅提升代码的灵活性、复用性和可维护性,适用于各种工程场景。
DRAWLINE.rar
MFC任意选择圆上不在同一直线上的三点,然后根据圆上三点的X,Y坐标动态画整圆,想修改画笔颜色、粗细可以修改一下代码里面的RGB就可以,可以有画笔跟随,有疑问可留言。


图形处理/算法
