描述
EXTLOGPEN结构定义了扩展笔的笔风格,宽度和画笔属性。当GetObject函数检索在称为ExtCreatePen函数的应用程序时创建的笔的描述时,此结构将由GetObject函数使用。
C++ 语法
typedef struct tagEXTLOGPEN { DWORD elpPenStyle; DWORD elpWidth; UINT elpBrushStyle; COLORREF elpColor; ULONG_PTR elpHatch; DWORD elpNumEntries; DWORD elpStyleEntry[1]; } EXTLOGPEN, *PEXTLOGPEN; |
PowerBASIC 语法
TYPE EXTLOGPEN elpPenStyle AS DWORD elpWidth AS DWORD elpBrushStyle AS DWORD elpColor AS DWORD elpHatch AS DWORD elpNumEntries AS DWORD elpStyleEntry(0) AS DWORD END TYPE |
成员
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成员具有以下端帽值之一。
值 |
含义 |
PS_ENDCAP_ROUND |
端盖是圆形的。 |
PS_ENDCAP_SQUARE |
端盖是正方形。 |
PS_ENDCAP_FLAT |
端盖是平的。 |
以下类别仅适用于PS_GEOMETRIC笔。使用PS_JOIN_MASK屏蔽的elpPenStyle成员具有以下连接值之一。
值 |
含义 |
PS_JOIN_BEVEL |
连接是斜面的。 |
PS_JOIN_MITER |
当它们在SetMiterLimit功能设置的当前限制之内时,连接将被缓和。如果超过此限制,则连接是斜面的。 |
PS_JOIN_ROUND |
连线是圆的。 |
elpWidth
指定笔的宽度。如果elpPenStyle成员是PS_GEOMETRIC,则该值是以逻辑单位表示的行的宽度。否则,线条是美观的,该值为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 |
指定一个空心或空白画笔。 |
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值。 |
RGB宏用于生成COLORREF结构。
elpHatch
如果elpBrushStyle是BS_PATTERN,elpHatch是定位模式的位图的句柄。
如果elpBrushStyle为BS_SOLID或BS_HOLLOW,elpHatch将被忽略。
如果elpBrushStyle是BS_DIBPATTERN,则elpHatch成员是打包DIB的句柄。要获取此句柄,应用程序使用GMEM_MOVEABLE(或LocalAlloc与LMEM_MOVEABLE)调用GlobalAlloc函数来分配一个内存块,然后使用打包的DIB填充内存。一个打包的DIB由一个BITMAPINFO结构组成,紧随其后的是定义位图像素的字节数组。
如果elpBrushStyle是BS_DIBPATTERNPT,则elpHatch成员是指向打包DIB的指针。指针是由具有LMEM_FIXED集的LocalAlloc创建的存储器块或由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
指定用户提供的样式数组。数组用有限的长度来指定,但是如同它无限期地重复使用一样。数组中的第一个条目指定第一个虚线的长度。第二个条目指定第一个间隙的长度。此后,短划线和间隙的长度交替出现。
如果elpWidth指定几何线,则长度为逻辑单位。否则,线条是化妆品,长度在设备单位。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)