MFC画笔CPen类
来源:互联网 发布:怪物猎人初音捏脸数据 编辑:程序博客网 时间:2024/04/30 03:52
MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下:
BOOL CreatePen( int nPenStyle, //画笔风格 int nWidth, //画笔宽度 COLORREF crColor //画笔颜色);
一旦不再需要画笔,记得用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));
现在创建的画笔不会生效,需要将画笔应用到DC中,MFC提供SelectObject函数完成此功能,要注意的是,SelectObject函数的参数是画笔对象指针,返回值是被替换的画笔指针,我们需要创建一个CPen对象保存这个旧的指针,保证用完这个画笔后,画笔的样式恢复到初值,代码:
CClient dc(this);CPen *oldPen=dc.SelectObject(&pen);
然后画线:
dc.MoveTo(m_ptOrigin);dc.LineTo(point);
最后要恢复画笔初始样式:
dc.SelectObject(&pOldPen);
参考链接1
参考链接2
- MFC画笔CPen类
- 画笔类CPen
- [MFC]CPen画笔类、CBrush画刷类使用介绍
- GDI画笔和CPen类
- [MFC]CPen画笔类、CBrush画刷类、背景颜色和背景模式
- MFC学习笔记.day02续-CDC类,绘图区域,CPen画笔,画刷 CBrush,DC设备描述表
- 如何使用CPen类选择各种粗细的画笔?
- MFC CPen
- VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)
- VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)
- CPen类
- CPen类
- CPen类
- MFC学习心得【画笔字体类】
- MFC画笔
- MFC之CBrush和CPen
- CPen
- CPen
- UNIX 进程揭秘--进程的生命周期
- 队列
- cf246c
- C++动态内存管理
- C语言的数据类型及范围
- MFC画笔CPen类
- 二维数组的查找
- Settings指令分析
- Java实现十大排序方法
- 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 正则表达式入门
- 通过OnScrollListener来监听RecyclerView的位置
- IDEA的入门使用(二)——插件
- SDUT 3769 分割 超大数据加一位数 比较大小