在MFC 中,使用类CPen来创建画笔对象。该类封装了与画笔相关的操作。它有三个构造函数,其中一个函数如下:
CPen( int nPenStyle, int nWidth, COLORREF crColor );
第一个参数(nPenStyle)指定笔的线型(实线、电线、虚线等);
第二个参数(nWidth)指定笔的线宽;
第三个参数(COLORREF)类型,利用RGB这个宏可以构建这种类型的值。RGB宏的声明如下:
COLORREF RGB(
BYTE byRed, // red component of color
BYTE byGreen, // green component of color
BYTE byBlue // blue component of color
);
可以看到,RGB宏有三个参数,分别代表红、绿、蓝三种颜色。这三个参数都是BYTE类型,取值范围为0~255。
如果将RGB宏的三个分量全部设置为0,则得到黑色;如果全部设置为255,则得到白色;....可以将这三个参数设置为0~255之间的任意值,从而得到各种不同的颜色。
例如:
CPen pen(PS_SOLID ,1,RGB(255,0,0));//表示一个实心、宽度为1、红色的画笔;
CPen pen(PS_SOLID ,1,RGB(0,255,0));//表示一个实心、宽度为1、绿色的画笔
CPen pen(PS_SOLID ,1,RGB(0,0,255));//表示一个实心、宽度为1、蓝色的画笔
核心代码如下:
CPen pen(PS_SOLID ,1,RGB(255,0,0));
CClientDC dc(this);
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);
CView::OnLButtonUp(nFlags, point);