EXTLOGPEN结构定义了扩展笔的笔风格,宽度和画笔属性。当GetObject函数检索当一个名为ExtCreatePen函数的应用程序创建的笔的描述时,此结构将由GetObject函数使用。
typedef struct tagEXTLOGPEN { // EXLP
UINT elpPenStyle;
UINT elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
LONG elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN;
会员
elpPenStyle
指定钢笔类型,样式,端盖样式和连接样式的组合。可以通过使用适当掩码的按位AND来检索每个类别的值。
使用PS_TYPE_MASK屏蔽的elpPenStyle成员具有以下笔类型值之一:
值 | 含义 |
PS_GEOMETRIC | 笔是几何的。 |
PS_COSMETIC | 笔是化妆品。 |
使用PS_STYLE_MASK屏蔽的elpPenStyle成员具有以下笔样式值之一:
值 | 含义 |
PS_SOLID | 笔是坚实的 |
PS_DASH | 笔被打破了。 |
PS_DOT | 笔是点缀的。 |
PS_DASHDOT | 笔具有交替的虚线和点。 |
PS_DASHDOTDOT | 笔具有交替的虚线和双点。 |
PS_NULL | 笔是看不见的。 |
PS_USERSTYLE | 笔将使用用户提供的样式阵列。 |
PS_INSIDEFRAME | 笔是坚实的当使用该笔在任何GDI绘图功能中使用一个边界矩形时,图形的尺寸将会缩小,从而使其完全符合边框矩形,同时考虑到笔的宽度。这仅适用于PS_GEOMETRIC笔。 |
以下类别仅适用于PS_GEOMETRIC笔。使用PS_ENDCAP_MASK屏蔽的elpPenStyle成员具有以下端帽值之一:
值 | 含义 |
PS_ENDCAP_ROUND | 线端盖是圆形的。 |
PS_ENDCAP_SQUARE | 线端帽是正方形。 |
PS_ENDCAP_FLAT | 线端盖是平的。 |
以下类别仅适用于PS_GEOMETRIC笔。使用PS_JOIN_STYLE屏蔽的elpPenStyle成员具有以下连接值之一:
值 | 含义 |
PS_JOIN_BEVEL | 线连接是斜面的。 |
PS_JOIN_MITER | 当线路连接在当前的SetMiterLimit限制之内时,它们将被缓和。当连接超过限制时,连接将被倾斜。 |
PS_JOIN_ROUND | 线连接是圆的。 |
Specifies a hatched brush.
指定笔的宽度。如果elpPenStyle成员指定几何线,则该值是该行的逻辑单位宽度。否则,线条是美观的,这个值是1。
elpBrushStyle
指定笔的画笔风格。elpBrushStyle成员值可以是以下之一:
值 | 描述 |
BS_DIBPATTERN | 指定由设备无关位图(DIB)规范定义的图案画笔。如果elpBrushStyle是BS_DIBPATTERN,则指定一个阴影画笔。成员包含一个打包DIB的句柄。 |
BS_DIBPATTERNPT | 指定由设备无关位图(DIB)规范定义的图案画笔。如果elpBrushStyle是BS_DIBPATTERNPT,则指定一个阴影画笔。成员包含指向打包DIB的指针。 |
BS_HATCHED | 指定一个阴影画笔。 |
BS_HOLLOW | 指定一个空心或空白画笔。 |
BS_PATTERN | 指定由内存位图定义的图案画笔。 |
BS_SOLID | 指定一个实心的画笔。 |
45度向上孵化(从左到右)
如果elpBrushStyle为BS_SOLID或BS_HATCHED,则45度向上孵化(从左到右)指定笔绘制的颜色。对于BS_HATCHED,SetBkMode和SetBkColor功能确定背景颜色。
如果elpBrushStyle为BS_HOLLOW或BS_PATTERN,45度向上孵化(从左到右)将被忽略。
如果elpBrushStyle是BS_DIBPATTERN或BS_DIBPATTERNPT,45度向上孵化(从左到右)的低位字指定BITMAPINFO结构的bmiColors成员是否包含显式的红色,绿色,蓝色(RGB)值或索引到当前实现的逻辑调色板。45度向上孵化(从左到右)值必须是以下之一:
值 | 含义 |
DIB_PAL_COLORS | 颜色表由当前实现的逻辑调色板中的16位索引的数组组成。 |
DIB_RGB_COLORS | 颜色表包含文字RGB值。 |
指定一个阴影画笔。
如果elpBrushStyle是BS_PATTERN,指定一个阴影画笔。是定位模式的位图的句柄。
如果elpBrushStyle为BS_SOLID或BS_HOLLOW,指定一个阴影画笔。将被忽略。
如果elpBrushStyle是BS_DIBPATTERN,则指定一个阴影画笔。成员是打包DIB的句柄。要获取此句柄,应用程序将调用GlobalAlloc函数来分配一个全局内存块,然后使用打包的DIB填充内存。一个打包的DIB由BITMAPINFO结构组成,紧随其后的是定义位图像素的字节数组。
如果elpBrushStyle是BS_DIBPATTERNPT,则指定一个阴影画笔。成员是指向打包DIB的指针。
如果elpBrushStyle是BS_HATCHED,则指定一个阴影画笔。成员指定用于创建舱口的线的方向。它可以是以下值之一:
值 | 含义 |
HS_BDIAGONAL | 45度向上孵化(从左到右) |
HS_CROSS | 水平和垂直十字线 |
HS_DIAGCROSS | 45度交叉阴影 |
HS_FDIAGONAL | 45度向下孵化(从左到右) |
HS_HORIZONTAL | 水平舱口 |
HS_VERTICAL | 垂直孵化 |
elpNumEntries
指定elpStyleEntry成员中样式数组中的条目数。如果elpPenStyle未指定PS_USERSTYLE,则该值为零。
elpStyleEntry
指定用户提供的样式数组。数组用有限的长度来指定,但是如同它无限期地重复使用一样。数组中的第一个条目指定第一个虚线的长度。第二个条目指定第一个间隙的长度。此后,短划线和间隙的长度交替出现。
如果Specifies a hatched brush.指定几何线,则长度为逻辑单位。否则,线条是化妆品,长度在设备单位。
也可以看看
BITMAPINFO, ExtCreatePen, GetObject, GlobalAlloc, SetBkColor, SetBkMode