ExtCreatePen

【勇芳软件工作室】汉化HomePreviousNext

ExtCreatePen函数创建一个具有指定样式,宽度和画笔属性的逻辑化妆或几何笔。

HPEN ExtCreatePen(

DWORD 【dwPenStyle】,//钢笔风格
DWORD 【dwWidthmt】,//笔宽
CONST LOGBRUSH 【* lplb】,//指针用于画笔属性的结构
DWORD 【dwStyleCount】,//包含自定义样式位的数组的长度
CONST DWORD 【* lpStyle】//自定义样式位的可选数组
); 

参数

【dwPenStyle】

指定类型,样式,端点和连接属性的组合。通过使用按位OR运算符(|)组合来自每个类别的值。

笔类型可以是以下值之一:

类型描述
PS_GEOMETRIC笔是几何。
PS_COSMETIC笔是化妆品。

钢笔风格可以是以下值之一:

样式描述
PS_ALTERNATEWindows NT:笔设置每个其他像素。(此款式仅适用于化妆笔)

Windows 95:不支援。

PS_SOLID笔是坚实的
PS_DASH笔被打破了。

Windows 95:几何线不支持此样式。

PS_DOT笔点缀。

Windows 95:几何线不支持此样式。

PS_DASHDOT笔有交替的破折号和点。

Windows 95:几何线条不支持此样式。

PS_DASHDOTDOT笔具有交替的虚线和双点。

Windows 95:几何线不支持此样式。

PS_NULL笔是看不见的
PS_USERSTYLEWindows NT: Pen使用用户提供的样式数组。

Windows 95:不支援。

PS_INSIDEFRAME笔是坚实的当使用该笔用于采用边界矩形的任何图形设备接口(GDI)绘图功能时,图形的尺寸将缩小,以使其完全符合边框矩形,同时考虑到笔的宽度。这仅适用于几何笔。

端盖仅适用于几何笔。端帽可以是以下值之一:

端盖描述
PS_ENDCAP_ROUND端盖是圆形的。
PS_ENDCAP_SQUARE端盖是正方形。
PS_ENDCAP_FLAT端盖是平的。

连接仅用于几何笔。连接可以是以下值之一:

线连接描述
PS_JOIN_BEVEL连接是斜面的。
PS_JOIN_MITER当它们在SetMiterLimit功能设置的当前限制内时,连接将被缓和。如果超过此限制,则连接是斜面的。
PS_JOIN_ROUND连线是圆的。

Windows 95: PS_ENDCAP_ROUND,PS_ENDCAP_SQUARE,PS_ENDCAP_FLAT,PS_JOIN_BEVEL,PS_JOIN_MITER和PS_JOIN_ROUND样式仅在几何笔用于绘制路径时才受支持。

【dwWidthmt】

指定笔的宽度。如果【dwPenStyle】参数是PS_GEOMETRIC,则宽度以逻辑单位给出。如果【dwPenStyle】是PS_COSMETIC,则宽度必须设置为1。

【lplb】

指向一个LOGBRUSH结构。如果【dwPenStyle】是PS_COSMETIC,则lbColor成员指定笔的颜色,并且lbStyle成员必须设置为BS_SOLID。如果【dwPenStyle】是PS_GEOMETRIC,则必须使用所有成员来指定笔的画笔属性。

【dwStyleCount】

指定【lpStyle】数组的双字单位长度。如果【dwPenStyle】不是PS_USERSTYLE,则此值必须为零。

【lpStyle】

指向一组双字值。第一个值指定用户定义样式中第一个虚线的长度,第二个值指定第一个空格的长度,依此类推。如果【dwPenStyle】不是PS_USERSTYLE,则此指针必须为NULL。

返回值

如果函数成功,则返回值是标识逻辑笔的句柄。

如果函数失败,返回值为零。

备注

几何笔可以具有任何宽度,并且可以具有画笔的任何属性,例如抖动和图案。化妆笔只能是单个像素宽,并且必须是纯色,但是化妆笔一般比几何笔更快。

几何笔的宽度总是以世界单位指定。化妆笔的宽度总是为1。

端盖和连接仅用于几何笔。

应用程序创建逻辑笔后,可以通过调用SelectObject函数将该笔选择到设备上下文中。在将笔选择到设备上下文中之后,可以用于绘制线条和曲线。

如果【dwPenStyle】为PS_COSMETIC和PS_USERSTYLE,则【lpStyle】数组中的条目以样式单位指定破折号和空格的长度。样式单元由笔用于绘制线的设备定义。

如果【dwPenStyle】是PS_GEOMETRIC和PS_USERSTYLE,则【lpStyle】数组中的条目以逻辑单位指定长度的破折号和空格。

如果【dwPenStyle】为PS_ALTERNATE,则将忽略样式单位,并设置其他每个像素。

如果 结构{}的结构的lbStyle成员是BS_PATTERN,该结构的lbHatch成员指向的位图不能是二段。二部分是由CreateDibSection创建的位图。如果该位图是二段,则ExtCreatePen功能失败。

当应用程序不再需要指定的笔时,应调用DeleteObject功能删除笔。

也可以看看

CreatePen, CreateDibSection, CreatePenIndirect, DeleteObject, GetObject, LOGBRUSH, SelectObject, SetMiterLimit