释义 |
CPen::CPen
CPen(); CPen( int nPenStyle, int nWidth, COLORREF crColor ); throw( CResourceException ); CPen( int nPenStyle, int nWidth , const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL ); throw( CResourceException );
参数:nPenStyle | 指定画笔的风格。在构造函数的第一个版本中,此参数可以取下列值之一:PS_SOLID | 创建一支实线画笔。 | PS_DASH | 创建一支虚线画笔。只有当画笔宽度为1或更小(以设备单位计算)时才有效。 | PS_DOT | 创建一支点线画笔。只有当画笔宽度为1或更小(以设备单位计算)时才有效。 | PS_DASHDOT | 创建一支虚线和点交替的画笔。只有当画笔宽度为1或更小(以设备单位计算)时才有效。 | PS_DASHDOTDOT | 创建一支虚线和两点交替的画笔。只有当画笔宽度为1或更小(以设备单位计算)时才有效。 | PS_NULL | 创建一支空画笔。 | PS_INSIDEFRAME | 创建一支画笔,该画笔在Windows GDI输出函数所产生的封闭形状的框架内画线,此输出函数指定一个限定矩形(例如,Ellipse,Rectangle,RoundRect,Pie和Chord成员函数),当此风格用于没有指定限定矩形的Windows GDI输出函数(例如LineTo成员函数)时,此画笔的绘制区域不受框架的限制。 |
第二种版本的CPen构造器指明了类型、风格、尾帽和连接等属性组合。来自每个类别的值应使用位操作符(|)组合起来。 笔的风格可以是下列之一:PS_GEOMETRIC | 创建一支几何画笔。 | PS_COSMETIC | 创建一支装饰画笔。CPen构造函数的第二个版本为nPenStyle添加了下列一些画笔风格: | PS_ALTERNATE | 创建一支交替设置像素的画笔(此风格只用于装饰画笔)。 | PS_USERSTYLE | 创建一支使用用户提供的风格数组的画笔。 |
尾帽可以是下列值之一:PS_ENDCAP_ROUND | 尾帽是圆的。 | PS_ENDCAP_SQUARE | 尾帽是方的。 | PS_ENDCAP_FLAT | 尾帽是平面的。 |
连接可以是下列值之一:PS_JOIN_BEVEL | 连接是斜截式的。 | PS_JOIN_MITER | 当连接在::SetMiterLimit函数所设置的当前限制之内时,连接是斜接式的。如果连接超出这个限制则成为斜截式的。 | PS_JOIN_ROUND | 连接是圆的。 |
|
· | 对于构造函数的第一个版本来说,如果这个值是0,则不管是什么映射方式,以设备单位计算的宽度总是一个像素。 | · | 对于构造函数的第二个版本来说,如果nPenStyle是PS_GEOMETRIC,则宽度以逻辑单位给出。如果nPenStyle是PS_COSMETIC,则宽度必须设置为1。 |
crColor | 包含了画笔的RGB值。 | pLogBrush | 指向一个LOGBRUSH结构。如果nPenStyle是PS_COSMETIC,则此LOGBRUSH结构的lbColor成员指定画笔的颜色,此LOGBRUSH结构的lbStyle成员必须设置为BS_SOLID。如果nPenStyle为PS_GEOMETRIC,则此结构的所有成员都必须用于指定画笔画刷属性。 | nStyleCount | 指定lpStyle数组的长度(以双字为单位)。如果nPenStyle不是PS_USERSTYLE,这个值必须是零。 | lpStyle | 指向一个双字值的数组。第一个值指定一个用户定义的风格中第一段虚线的长度,第二个值指定第一段空白的长度,如此等等。如果nPenStyle不是PS_USERSTYLE,则这个指针必须为NULL。 |
说明: 如果你使用的是没有参数的构造函数,你就必须用CreatePen,CreatePenIndirect或CreateStockObject成员函数来初始化所生成的CPen对象。如果你使用的是带参数的构造函数,则不再需要进一步的初始化。如果有错误发生,则带参数的构造函数可能会抛出一个异常,但是不带参数的构造函数则总是会成功。
请参阅: CPen::CreatePen, CPen::CreatePenIndirect, CGdiObject::CreateStockObject |