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,SetBkModeSetBkColor 函数确定背景色。

如果 elpBrushStyle 为BS_HOLLOW或BS_PATTERN,则忽略 elpColor

如果 elpBrushStyle 是BS_DIBPATTERN或BS_DIBPATTERNPT,则 elpColor 的低序字指定 BITMAPINFO 结构的 bmiColors 成员是否包含当前实现的逻辑调色板中的显式 RGB 值或索引。 elpColor 值必须是以下值之一。

含义
DIB_PAL_COLORS 颜色表由当前实现的逻辑调色板中的 16 位索引数组组成。
DIB_RGB_COLORS 颜色表包含文字 RGB 值。
 

RGB 宏用于生成 COLORREF 结构。

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)

另请参阅

BITMAPINFO

COLORREF

ExtCreatePen

GetObject

笔结构

笔概述

RGB

SetBkColor

SetBkMode