天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 3|回复: 0

MFC画笔CPen类

[复制链接]
  • TA的每日心情
    开心
    昨天 15:23
  • 签到天数: 69 天

    [LV.6]常住居民II

    410

    主题

    167

    回帖

    2704

    积分

    管理员

    积分
    2704
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下:

    BOOL CreatePen(
        int      nPenStyle,  //画笔风格
        int      nWidth,     //画笔宽度
        COLORREF crColor     //画笔颜色
    );
    1
    2
    3
    4
    5
    一旦不再需要画笔,记得用DeleteObject函数将其删除

    设置线型
    创建画笔的函数中,nPenStyle参数表示画笔风格,可以设置下列值之一。nPenStyle —— Long,指定画笔样式,可以是下述常数之一:
    PS_SOLID : 画笔画出的是实线。
    PS_DASH: 画笔画出的是虚线(nWidth必须不大于1)。
    PS_DOT: 画笔画出的是点线(nWidth必须不大于1)。
    PS_DASHDOT:画笔画出的是点划线(nWidth必须不大于1)。
    PS_DASHDOTDOT: 画笔画出的是点-点-划线(nWidth必须不大于1)。
    PS_NULL: 空画笔,画笔不能画图。
    PS_INSIDEFRAME:内侧实线画笔 由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框时,画线宽度向内扩展。如指定的准确RGB颜色不存在,就进行抖动处理。

    设置线宽
    创建画笔的函数中,nWidth表示画笔线宽,是一个逻辑值,这个值越小,画出的图形线越细;这个值越大,绘制的图形线条越粗

    设置画笔颜色
    画笔颜色通过RGB宏控制,例如需要画红色的图形,RGB(255,0,0)。MFC中有许多引用颜色宏RGB,这里总结了一些常见的颜色的宏,供大家参考。

    基本颜色三种:红绿蓝,其他的颜色都是由这三种基本的颜色组成。例如,红RGB(255,0,0)、绿RGB(0, 255,0)、蓝RGB(0,0, 255)、浅粉红 #FFB6C1 255,182,193、紫色 #800080 128,0,128等。

    例如:
    CPen pen(PS_SOLID, 10, RGB(0, 0, 255));
    1
    现在创建的画笔不会生效,需要将画笔应用到DC中,MFC提供SelectObject函数完成此功能,要注意的是,SelectObject函数的参数是画笔对象指针,返回值是被替换的画笔指针,我们需要创建一个CPen对象保存这个旧的指针,保证用完这个画笔后,画笔的样式恢复到初值,代码:

    CClient dc(this);
    CPen *oldPen=dc.SelectObject(&pen);
    1
    2
    然后画线:

    dc.MoveTo(m_ptOrigin);
    dc.LineTo(point);
    1
    2
    最后要恢复画笔初始样式:

    dc.SelectObject(&pOldPen);

     

     

     

     

    MFC画笔CPen类
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|

    GMT+8, 2024-7-1 05:14 , Processed in 0.057301 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表