勇芳软件工作室.汉化:  Pens > Pen Functions >

ExtCreatePen

Previous pageReturn to chapter overviewNext page

描述

 

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

 

C++ 语法

 

HPEN ExtCreatePen(

__in DWORD dwPenStyle,

__in DWORD dwWidth,

__in const LOGBRUSH *lplb,

__in DWORD dwStyleCount,

__in const DWORD *lpStyle

);

 

PowerBASIC 语法

 

FUNCTION ExtCreatePen ( _

BYVAL dwPenStyle AS DWORD, _

BYVAL dwWidth AS DWORD, _

BYREF lplb AS LOGBRUSH, _

BYVAL dwStyleCount AS DWORD, _

BYREF lpStyle AS DWORD _

) AS DWORD

 

参数

 

dwPenStyle

 

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

 

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

 

含义

PS_GEOMETRIC

笔是几何的。

PS_COSMETIC

笔是化妆品。

 

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

 

含义

PS_ALTERNATE

Windows NT / 2000 / XP/ VISTA / Windows 7的:笔设置每隔一个像素。(此款式仅适用于化妆笔)

PS_SOLID

笔是坚实的

PS_DASH

笔被打破了。

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

Windows 98 / Me:不支持

PS_DOT

笔是点缀的。

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

PS_DASHDOT

笔具有交替的虚线和点。

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

Windows 98 / Me:不支持。

PS_DASHDOTDOT

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

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

Windows 98 / Me:不支持。

PS_NULL

笔是看不见的。

PS_USERSTYLE

Windows NT / 2000 / XP/ VISTA / Windows 7的:笔使用用户提供的样式阵列。

PS_INSIDEFRAME

笔是坚实的当使用该笔在任何GDI绘图功能中使用一个边界矩形时,图形的尺寸将会缩小,从而使其完全符合边框矩形,同时考虑到笔的宽度。这仅适用于几何笔。

 

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

 

含义

PS_ENDCAP_ROUND

端盖是圆形的。

PS_ENDCAP_SQUARE

端盖是正方形。

PS_ENDCAP_FLAT

端盖是平的。

 

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

 

含义

PS_JOIN_BEVEL

连接是斜面的。

PS_JOIN_MITER

当它们在SetMiterLimit函数设置的当前限制之内时,连接将被缓和。如果超过此限制,则连接是斜面的。

PS_JOIN_ROUND

连线是圆的。

 

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

 

dwWidth

 

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

 

lplb

 

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

 

dwStyleCount

 

[in]指定lpStyle数组的长度(DWORD单位)。如果dwPenStyle不是PS_USERSTYLE,则此值必须为零。

 

Windows NT / XP / Vista / Windows 7:样式计数限制为16。

 

lpStyle

 

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

 

如果在线绘制期间超出lpStyle数组,指针将重置为数组的开头。当这种情况发生时,dwStyleCount是一个偶数,破折号和空格的模式重复。但是,如果dwStyleCount为奇数,则当指针复位时,模式反转 - lpStyle的第一个元素现在指的是空格,第二个元素指的是破折号,等等。

 

返回值

 

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

 

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

 

备注

 

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

 

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

 

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

 

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

 

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

 

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

 

如果dwPenStyle是PS_ALTERNATE,样式单位将被忽略,并且每隔一个像素都被设置。

 

如果LOGBRUSH结构LOGBRUSH所指向的LOGBRUSH结构的lbStyle成员是BS_PATTERN,该结构的lbHatch成员指向的位图不能是DIB部分。DIB部分是由CreateDIBSection创建的位图。如果该位图是DIB部分,则ExtCreatePen功能失败。

 

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

 

ICM:笔创建时不进行颜色管理。然而,当笔被选择到启用ICM的设备上下文中时,执行颜色管理。

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)