1. 基本用法
MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下:MFC的CPen类封装了画笔对象,其中的成员函数CreatePen实现创建画笔的功能,函数原型如下:
BOOL CreatePen(
int nPenStyle, //画笔风格
int nWidth, //画笔宽度
COLORREF crColor ) //画笔颜色)
设置线型
创建画笔的函数中,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等。
MFC OnPaint()函数中实现画笔使用
//获取DC
CPaintDC dc(this);
//创建画笔
CPen newPen;
CPen *pOldPen;
newPen.CreatePen(PS_SOLID,3,RGB(0,0,255));
//将画笔选入DC
pOldPen=dc.SelectObject(&newPen);
//绘制图形
dc.MoveTo(100,100);
dc.LineTo(400,400);
//恢复画笔
dc.SelectObject(pOldPen);
//删除新建画笔
newPen.DeleteObject();
pOldPen->DeleteObject();
2. 易错难点