EXTLOGPEN 结构 (wingdi.h)
EXTLOGPEN 结构定义扩展笔的笔样式、宽度和画笔属性。 GetObject 函数在检索在应用程序调用 ExtCreatePen 函数时创建的笔的说明时使用此结构。
语法
typedef struct tagEXTLOGPEN {
DWORD elpPenStyle;
DWORD elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
ULONG_PTR elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
成员
elpPenStyle
笔类型、样式、端帽样式和联接样式的组合。 可以使用带相应掩码的按位 AND 运算符检索每个类别的值。
用 PS_TYPE_MASK 屏蔽的 elpPenStyle 成员具有以下笔类型值之一。
值 | 含义 |
---|---|
PS_GEOMETRIC | 笔是几何的。 |
PS_COSMETIC | 笔是整容的。 |
使用 PS_STYLE_MASK 屏蔽的 elpPenStyle 成员具有以下笔样式值之一:
值 | 含义 |
---|---|
PS_DASH | 触控笔虚线。 |
PS_DASHDOT | 笔具有交替的短划线和点。 |
PS_DASHDOTDOT | 笔具有交替的短划线和双点。 |
PS_DOT | 笔被点点。 |
PS_INSIDEFRAME | 触控笔是实心的。 在采用边框的任何 GDI 绘图函数中使用此笔时,图形的尺寸会缩小,使其完全适合边界矩形,同时考虑笔的宽度。 这仅适用于PS_GEOMETRIC笔。 |
PS_NULL | 笔不可见。 |
PS_SOLID | 触控笔是实心的。 |
PS_USERSTYLE | 笔使用用户提供的样式数组。 |
以下类别仅适用于PS_GEOMETRIC笔。 使用 PS_ENDCAP_MASK 掩码的 elpPenStyle 成员具有以下结束 cap 值之一。
值 | 含义 |
---|---|
PS_ENDCAP_FLAT | 线条端帽是平的。 |
PS_ENDCAP_ROUND | 行尾帽为圆形。 |
PS_ENDCAP_SQUARE | 线条端帽是方形的。 |
以下类别仅适用于PS_GEOMETRIC笔。 使用 PS_JOIN_MASK 屏蔽的 elpPenStyle 成员具有以下联接值之一。
值 | 含义 |
---|---|
PS_JOIN_BEVEL | 线联接是斜角的。 |
PS_JOIN_MITER | 当行联接在 SetMiterLimit 函数设置的当前限制内时,它们将被误用。 当联接超出限制时,将进行斜角连接。 |
PS_JOIN_ROUND | 线条联接为圆角。 |
elpWidth
笔的宽度。 如果 elpPenStyle 成员PS_GEOMETRIC,则此值是行的宽度(以逻辑单元为单位)。 否则,线条是修饰的,此值为 1,表示宽度为 1 像素的线条。
elpBrushStyle
笔的画笔样式。 elpBrushStyle 成员值可以是以下值之一。
值 | 含义 |
---|---|
BS_DIBPATTERN | 指定 DIB 规范定义的图案画笔。 如果 elpBrushStyle 是BS_DIBPATTERN, 则 elpHatch 成员包含已打包 DIB 的句柄。 有关详细信息,请参阅 elpHatch 中的讨论 |
BS_DIBPATTERNPT | 指定 DIB 规范定义的图案画笔。 如果 elpBrushStyle BS_DIBPATTERNPT, 则 elpHatch 成员包含指向已打包 DIB 的指针。 有关详细信息,请参阅 elpHatch 中的讨论。 |
BS_HATCHED | 指定阴影画笔。 |
BS_HOLLOW | 指定空心画笔或 NULL 画笔。 |
BS_PATTERN | 指定由内存位图定义的图案画笔。 |
BS_SOLID | 指定纯色画笔。 |
elpColor
如果 elpBrushStyle 是BS_SOLID或BS_HATCHED, 则 elpColor 将指定要绘制笔的颜色。 对于 BS_HATCHED,SetBkMode 和 SetBkColor 函数确定背景色。
如果 elpBrushStyle 为BS_HOLLOW或BS_PATTERN,则忽略 elpColor 。
如果 elpBrushStyle 是BS_DIBPATTERN或BS_DIBPATTERNPT,则 elpColor 的低序字指定 BITMAPINFO 结构的 bmiColors 成员是否包含当前实现的逻辑调色板中的显式 RGB 值或索引。 elpColor 值必须是以下值之一。
值 | 含义 |
---|---|
DIB_PAL_COLORS | 颜色表由当前实现的逻辑调色板中的 16 位索引数组组成。 |
DIB_RGB_COLORS | 颜色表包含文字 RGB 值。 |
elpHatch
如果 elpBrushStyle 为BS_PATTERN, 则 elpHatch 是定义模式的位图的句柄。
如果 elpBrushStyle 为BS_SOLID或BS_HOLLOW,则忽略 elpHatch 。
如果 elpBrushStyle 为BS_DIBPATTERN, 则 elpHatch 成员是已打包 DIB 的句柄。 为了获取此句柄,应用程序使用 GMEM_MOVEABLE ( 或具有 LMEM_MOVEABLE) 的 LocalAlloc 调用 GlobalAlloc 函数来分配内存块,然后使用打包的 DIB 填充内存。 打包的 DIB 由 BITMAPINFO 结构组成,后跟定义位图像素的字节数组。
如果 elpBrushStyle BS_DIBPATTERNPT, 则 elpHatch 成员是指向已打包 DIB 的指针。 指针派生自 LocalAlloc 创建的内存块(设置了 LMEM_FIXED),或由具有GMEM_FIXED集的 GlobalAlloc 创建的内存块,或者它是由 LocalLock (handle_to_the_dib) 等调用返回的指针。 打包的 DIB 由 BITMAPINFO 结构组成,后跟定义位图像素的字节数组。
如果 elpBrushStyle BS_HATCHED, 则 elpHatch 成员指定用于创建阴影的线条的方向。 可以是下列值之一。
值 | 含义 |
---|---|
HS_BDIAGONAL | 45 度向上阴影 (从左到右) |
HS_CROSS | 横向缩放与纵向阴影线 |
HS_DIAGCROSS | 45 度交叉切线 |
HS_FDIAGONAL | 45 度向下阴影 (从左到右) |
HS_HORIZONTAL | 水平阴影 |
HS_VERTICAL | 垂直阴影 |
elpNumEntries
elpStyleEntry 成员样式数组中的条目数。 如果 elpPenStyle 未指定PS_USERSTYLE,则此值为零。
elpStyleEntry[1]
用户提供的样式数组。 数组是用有限长度指定的,但它的使用方式就像无限期重复一样。 数组中的第一个条目指定第一个短划线的长度。 第二个条目指定第一个间距的长度。 此后,短划线和间隙的长度交替出现。
如果 elpWidth 指定几何线,则长度以逻辑单位为单位。 否则,线条是修饰的,长度以设备单位为单位。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | wingdi.h (包括 Windows.h) |
另请参阅
GetObject