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

EXTLOGPEN

Previous pageReturn to chapter overviewNext page

描述

 

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,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(或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)