EXTLOGPEN
The EXTLOGPEN
structure defines the pen style, width, and brush attributes for an extended
pen. This structure is used by the GetObject3V6UF0 function when it retrieves a description
of a pen that was created when an application called the ExtCreatePen function.
typedef struct tagEXTLOGPEN { // exlp
UINT elpPenStyle;
UINT elpWidth;
UINT elpBrushStyle;
COLORREF
elpColor;
LONG elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN;
Members
elpPenStyle
Specifies a
combination of pen type, style, end cap style, and join style. The values from
each category can be retrieved by using a bitwise AND with the appropriate
mask.
The elpPenStyle
member masked with PS_TYPE_MASK has one of the following pen type values:
Value |
Meaning |
PS_GEOMETRIC |
The pen is
geometric. |
PS_COSMETIC |
The pen is
cosmetic. |
The elpPenStyle
member masked with PS_STYLE_MASK has one of the following pen styles values:
Value |
Meaning |
PS_SOLID |
The pen is
solid. |
PS_DASH |
The pen is
dashed. |
PS_DOT |
The pen is
dotted. |
PS_DASHDOT |
The pen has
alternating dashes and dots. |
PS_DASHDOTDOT |
The pen has
alternating dashes and double dots. |
PS_NULL |
The pen is
invisible. |
PS_USERSTYLE |
The pen
will use a styling array supplied by the user. |
PS_INSIDEFRAME |
The pen is
solid. When this pen is used in any GDI drawing function that takes a
bounding rectangle, the dimensions of the figure are shrunk so that it fits
entirely in the bounding rectangle, taking into account the width of the pen.
This applies only to PS_GEOMETRIC pens. |
The following category applies only to PS_GEOMETRIC pens. The elpPenStyle
member masked with PS_ENDCAP_MASK has one of the following end cap values:
Value |
Meaning |
PS_ENDCAP_ROUND |
Line end
caps are round. |
PS_ENDCAP_SQUARE |
Line end
caps are square. |
PS_ENDCAP_FLAT |
Line end
caps are flat. |
The following category applies only to PS_GEOMETRIC pens. The elpPenStyle
member masked with PS_JOIN_STYLE has one of the following join values:
Value |
Meaning |
PS_JOIN_BEVEL |
Line joins
are beveled. |
PS_JOIN_MITER |
Line joins
are mitered when they are within the current SetMiterLimit limit. A
join is beveled when it would exceed the limit. |
PS_JOIN_ROUND |
Line joins
are round. |
elpWidth
Specifies the
width of the pen. If the elpPenStyle member specifies geometric lines,
this value is the width, in logical units, of the line. Otherwise, the lines
are cosmetic and this value is 1.
elpBrushStyle
Specifies the
brush style of the pen. The elpBrushStyle member values can be one of
the following:
Value |
Description |
BS_DIBPATTERN |
Specifies a
pattern brush defined by a device-independent bitmap (DIB) specification. If elpBrushStyle
is BS_DIBPATTERN, the elpHatch member contains a handle to a packed
DIB. |
BS_DIBPATTERNPT |
Specifies a
pattern brush defined by a device-independent bitmap (DIB) specification. If elpBrushStyle
is BS_DIBPATTERNPT, the elpHatch member contains a pointer to a packed
DIB. |
BS_HATCHED |
Specifies a
hatched brush. |
BS_HOLLOW |
Specifies a
hollow or NULL brush. |
BS_PATTERN |
Specifies a
pattern brush defined by a memory bitmap. |
BS_SOLID |
Specifies a
solid brush. |
elpColor
If elpBrushStyle
is BS_SOLID or BS_HATCHED, elpColor specifies the color in which the pen
is to be drawn. For BS_HATCHED, the SetBkMode1CRGOUH and SetBkColor functions determine the
background color.
If elpBrushStyle
is BS_HOLLOW or BS_PATTERN, elpColor is ignored.
If elpBrushStyle
is BS_DIBPATTERN or BS_DIBPATTERNPT, the low-order word of elpColor
specifies whether the bmiColors members of the BITMAPINFO
Value |
Meaning |
DIB_PAL_COLORS |
The color
table consists of an array of 16-bit indexes into the currently realized
logical palette. |
DIB_RGB_COLORS |
The color
table contains literal RGB values. |
elpHatch
If elpBrushStyle
is BS_PATTERN, elpHatch is a handle to the bitmap that defines the pattern.
If elpBrushStyle is BS_SOLID or BS_HOLLOW, elpHatch is
ignored.
If elpBrushStyle is BS_DIBPATTERN, the elpHatch member is
a handle to a packed DIB. To obtain this handle, an application calls the GlobalAlloc
If elpBrushStyle is BS_DIBPATTERNPT, the elpHatch member
is a pointer to a packed DIB.
If elpBrushStyle is BS_HATCHED, the elpHatch member
specifies the orientation of the lines used to create the hatch. It can be any
one of the following values:
Value |
Meaning |
HS_BDIAGONAL |
45-degree
upward hatch (left to right) |
HS_CROSS |
Horizontal
and vertical crosshatch |
HS_DIAGCROSS |
45-degree
crosshatch |
HS_FDIAGONAL |
45-degree
downward hatch (left to right) |
HS_HORIZONTAL |
Horizontal
hatch |
HS_VERTICAL |
Vertical
hatch |
elpNumEntries
Specifies the
number of entries in the style array in the elpStyleEntry member. This
value is zero if elpPenStyle does not specify PS_USERSTYLE.
elpStyleEntry
Specifies a
user-supplied style array. The array is specified with a finite length, but it
is used as if it repeated indefinitely. The first entry in the array specifies
the length of the first dash. The second entry specifies the length of the
first gap. Thereafter, lengths of dashes and gaps alternate.
If elpWidth specifies geometric lines, the lengths are in
logical units. Otherwise, the lines are cosmetic and lengths are in device
units.
See Also