|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| No
| Import Library
| gdi32.lib
| Header File
| wingdi.h
| Unicode
| No
| Platform Notes
| Windows 95: Only supports solid colors (e.g., BS_SOLID brushes); also int ==
16 bits
|
|
|
ExtCreatePen
The
ExtCreatePen function creates a logical cosmetic or geometric pen that has the specified
style, width, and brush attributes.
HPEN ExtCreatePen(
DWORD dwPenStyle,
| // pen style
|
DWORD dwWidth,
| // pen width
|
CONST LOGBRUSH *lplb,
| // pointer to structure for brush attributes
|
DWORD dwStyleCount,
| // length of array containing custom style bits
|
CONST DWORD *lpStyle
| // optional array of custom style bits
|
);
|
|
Parameters
dwPenStyle
Specifies a combination of type, style, end cap, and join attributes. The
values from each category are combined by using the bitwise OR operator (|).
The pen type can be one of the following values:
Type
| Description
|
PS_GEOMETRIC
| Pen is geometric.
|
PS_COSMETIC
| Pen is cosmetic.
|
The pen style can be any one of the following values:
Style
| Description
|
PS_ALTERNATE
| Windows NT: Pen sets every other pixel. (This style is applicable only for cosmetic pens.)
Windows 95: Not supported.
|
PS_SOLID
| Pen is solid.
|
PS_DASH
| Pen is dashed.
Windows 95: This style is not supported for geometric lines.
|
PS_DOT
| Pen is dotted.
Windows 95: This style is not supported for geometric lines.
|
PS_DASHDOT
| Pen has alternating dashes and dots.
Windows 95: This style is not supported for geometric lines.
|
PS_DASHDOTDOT
| Pen has alternating dashes and double dots.
Windows 95: This style is not supported for geometric lines.
|
PS_NULL
| Pen is invisible.
|
PS_USERSTYLE
| Windows NT: Pen uses a styling array supplied by the user.
Windows 95: Not supported.
|
PS_INSIDEFRAME
| Pen is solid. When this pen is used in any graphics device interface (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 geometric pens.
|
The end cap is only specified for geometric pens. The end cap can be one of
the following values:
End cap
| Description
|
PS_ENDCAP_ROUND
| End caps are round.
|
PS_ENDCAP_SQUARE
| End caps are square.
|
PS_ENDCAP_FLAT
| End caps are flat.
|
The join is only specified for geometric pens. The join can be one of the
following values:
Line join
| Description
|
PS_JOIN_BEVEL
| Joins are beveled.
|
PS_JOIN_MITER
| Joins are mitered when they are within the current limit set by the SetMiterLimit function. If it exceeds this limit, the join is beveled.
|
PS_JOIN_ROUND
| Joins are round.
|
Windows 95: The PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, PS_ENDCAP_FLAT, PS_JOIN_BEVEL,
PS_JOIN_MITER, and PS_JOIN_ROUND styles are supported only for geometric pens when
used to draw paths.
dwWidth
Specifies the width of the pen. If the
dwPenStyle parameter is PS_GEOMETRIC, the width is given in logical units. If
dwPenStyle is PS_COSMETIC, the width must be set to 1.
lplb
Points to a
LOGBRUSH structure. If
dwPenStyle is PS_COSMETIC, the
lbColor member specifies the color of the pen and the
lbStyle member must be set to BS_SOLID. If
dwPenStyle is PS_GEOMETRIC, all members must be used to specify the brush attributes of
the pen.
dwStyleCount
Specifies the length, in doubleword units, of the
lpStyle array. This value must be zero if
dwPenStyle is not PS_USERSTYLE.
lpStyle
Points to an array of doubleword values. The first value specifies the length
of the first dash in a user-defined style, the second value specifies the
length of the first space, and so on. This pointer must be NULL if
dwPenStyle is not PS_USERSTYLE.
Return Values
If the function succeeds, the return value is a handle that identifies a
logical pen.
If the function fails, the return value is zero.
Remarks
A geometric pen can have any width and can have any of the attributes of a
brush, such as dithers and patterns. A cosmetic pen can only be a single pixel
wide and must be a solid color, but cosmetic pens are generally faster than
geometric pens.
The width of a geometric pen is always specified in world units. The width of
a cosmetic pen is always 1.
End cap and join are only specified for geometric pens.
After an application creates a logical pen, it can select that pen into a
device context by calling the
SelectObject function. After a pen is selected into a device context, it can be used to
draw lines and curves.
If
dwPenStyle is PS_COSMETIC and PS_USERSTYLE, the entries in the
lpStyle array specify lengths of dashes and spaces in style units. A style unit is
defined by the device where the pen is used to draw a line.
If
dwPenStyle is PS_GEOMETRIC and PS_USERSTYLE, the entries in the
lpStyle array specify lengths of dashes and spaces in logical units.
If
dwPenStyle is PS_ALTERNATE, the style unit is ignored and every other pixel is set.
If the
lbStyle member of the
LOGBRUSH structure pointed to by
lplb is BS_PATTERN, the bitmap pointed to by the
lbHatch member of that structure cannot be a dib section. A dib section is a bitmap
created by
CreateDibSection. If that bitmap is a dib section, the
ExtCreatePen function fails.
When an application no longer requires a specified pen, it should call the
DeleteObject function to delete the pen.
See Also
CreatePen,
CreateDibSection,
CreatePenIndirect,
DeleteObject,
GetObject,
LOGBRUSH,
SelectObject,
SetMiterLimit
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database