VC++开发GIS系统(25)关于VC++中的CPEN类2

回顾之前的文章VC++开发GIS系统(21)关于VC++中的CPEN类中关于CPEN类的介绍,我只介绍了CPEN的一个构造函数,结果发现这个构造函数在一些实际使用过程中存在一些缺陷,所以我写了VC++开发GIS系统(24)设置宽度大于1的虚线边框,本文在这里对CPEN的构造函数做一个补充。

CPEN新构造函数

CPen( 
    int nPenStyle, 
    int nWidth, 
    const LOGBRUSH* pLogBrush, 
    int nStyleCount = 0, 
    const DWORD* lpStyle = NULL  
);

参数介绍

nPenStyle

指定钢笔的样式。 在构造函数的第一个版本的此参数可以是下列值之一:
PS_SOLID 创建实心钢笔。
PS_DASH 创建一个虚线钢笔。 有效,仅当钢笔的宽度为1或更小,在组件度量单位。
PS_DOT 创建一个虚线钢笔的。 有效,仅当钢笔的宽度为1或更小,在组件度量单位。
PS_DASHDOT 使用交替短划线和点创建一个钢笔。 有效,仅当钢笔的宽度为1或更小,在组件度量单位。
PS_DASHDOTDOT 使用交替短划线和double点创建一个钢笔。 有效,仅当钢笔的宽度为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 Joins为、。
并在 SetMiterLimit 函数时,设置的当前限制内PS_JOIN_MITER Joins是斜接。 如果连接超出此限制,其转换为、。
PS_JOIN_ROUND Joins是圆形的。

nWidth

指定钢笔的宽度。
对于构造函数的第一个版本,因此,如果该值为0,无论该映射模式,如组件单位的宽度始终为1像素。
对于构造函数的第二个版本,因此,如果 nPenStyle 是 PS_GEOMETRIC,该宽度(以逻辑单位给定。 如果 nPenStyle 是 PS_COSMETIC,必须将宽度为1。

pLogBrush

指向 LOGBRUSH 结构。 如果 nPenStyle 是 PS_COSMETIC,LOGBRUSH 结构的 lbColor 成员指定钢笔的颜色,并 LOGBRUSH 结构的 lbStyle 成员必须设置为 BS_SOLID。 如果 nPenStyle 是 PS_GEOMETRIC,所有成员必须使用指定钢笔的brush属性。

nStyleCount

在双字单元测试指定该长度,lpStyle 数组。 如果 nPenStyle 不是 PS_USERSTYLE,此值必须为零。

lpStyle

指向双字值。 第一个值在用户定义的样式指定第一个短划线的长度,第二个值指定第一个间距的长度,依此类推。 如果 nPenStyle 不是 PS_USERSTYLE,该指针必须是 NULL。

VC++开发GIS系统(24)设置宽度大于1的虚线边框 VC++开发GIS系统(26)关于LOGBRUSH结构体

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论