1. 画笔的风格:
1) 所有的画线函数都是使用CPen类指定的画笔绘制的,默认都是1像素宽、黑色的实线;
2) 要使定义的画笔生效(即可以画线)必须先创建CPen的画笔对象,然后将其选入设备环境dc中方可生效,但如果什么都不设定也可以直接用dc画线,是因为dc初始化时有一个默认的画笔,就是上述的1像素宽、黑色的实线;
3) 画笔的风格由三个特性决定,即样式、宽度和颜色:
i. 样式(int nPenStyle):主要有实线、划线、点线、点划线、透明这几种主要风格,该项特性由宏PS_指定,即Pen Style的缩写,主要由这几个常用的
PS_SOLID:实线
PS_DOT:点线
PS_DASH:划线
PS_DASHDOT:点划线
PS_DASHDOTDOT:一划两点的点划线
PS_NULL:透明线
PS_INSIDEFRAME:边框内沿线
!其中边框内沿线是指整个边框线的实体都紧贴边框内沿,而非PS_INSIDEFRAME的线在边框内侧和外侧的宽度都一样,比如画一个圆,直径为5像素,画圆的线的风格是非内沿的2像素宽的线,则边沿线内外两侧各占1像素宽的边框线,因此总的外径为12像素,但如果是内沿的风格,则变沿线外侧无边框线的像素,而内侧有2像素宽度的边框线,因此外径仍然是10像素;
ii. 宽度(int nWidth):宽度由逻辑单位给出,逻辑单位取决于当前的映射模式,其中PS_SOLID、PS_NULL、PS_INSIDEFRAME可以指定任意逻辑宽度,但其余(PS_DASH、PS_DOT、PS_DASHDOT、PS_DASHDOTDOT)必须指定1单位宽,如果指定其它任何值都会在后台自动修正为1逻辑宽度。
!注意:任意样式如果指定的宽度为0,都会被默认修正成1;
iii. 颜色(COLORREF crColor):由RGB宏定义,三个分量分别为红、绿、蓝;
2. 创建、修改、选中画笔:
1) 可以使用CPen的构造函数:
i. 无参构造函数:CPen(),和dc初始化时默认的画笔相同,也是实线、1像素宽、黑色;
ii. 有参构造函数:CPen(int nPenStyle, int nWidth, COLORREF crColor);
2) 修改画笔:如果想修改画笔的风格