ExtCreatePen函数创建一个具有指定样式,宽度和画笔属性的逻辑化妆或几何笔。
HPEN ExtCreatePen(
DWORD 【dwPenStyle】, | //钢笔风格 |
DWORD 【dwWidthmt】, | //笔宽 |
CONST LOGBRUSH 【* lplb】, | //指针用于画笔属性的结构 |
DWORD 【dwStyleCount】, | //包含自定义样式位的数组的长度 |
CONST DWORD 【* lpStyle】 | //自定义样式位的可选数组 |
); |
参数
【dwPenStyle】
指定类型,样式,端点和连接属性的组合。通过使用按位OR运算符(|)组合来自每个类别的值。
笔类型可以是以下值之一:
类型 | 描述 |
PS_GEOMETRIC | 笔是几何。 |
PS_COSMETIC | 笔是化妆品。 |
钢笔风格可以是以下值之一:
样式 | 描述 |
PS_ALTERNATE | Windows NT:笔设置每个其他像素。(此款式仅适用于化妆笔) Windows 95:不支援。 |
PS_SOLID | 笔是坚实的 |
PS_DASH | 笔被打破了。 Windows 95:几何线不支持此样式。 |
PS_DOT | 笔点缀。 Windows 95:几何线不支持此样式。 |
PS_DASHDOT | 笔有交替的破折号和点。 Windows 95:几何线条不支持此样式。 |
PS_DASHDOTDOT | 笔具有交替的虚线和双点。 Windows 95:几何线不支持此样式。 |
PS_NULL | 笔是看不见的 |
PS_USERSTYLE | Windows 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