2.1.25 PenStyle Enumeration

The PenStyle enumeration defines the attributes of pens that can be used in graphics operations. A pen style is a combination of pen type, line style, line cap, and line join.

 typedef  enum
 {
   PS_COSMETIC = 0x00000000,
   PS_ENDCAP_ROUND = 0x00000000,
   PS_JOIN_ROUND = 0x00000000,
   PS_SOLID = 0x00000000,
   PS_DASH = 0x00000001,
   PS_DOT = 0x00000002,
   PS_DASHDOT = 0x00000003,
   PS_DASHDOTDOT = 0x00000004,
   PS_NULL = 0x00000005,
   PS_INSIDEFRAME = 0x00000006,
   PS_USERSTYLE = 0x00000007,
   PS_ALTERNATE = 0x00000008,
   PS_ENDCAP_SQUARE = 0x00000100,
   PS_ENDCAP_FLAT = 0x00000200,
   PS_JOIN_BEVEL = 0x00001000,
   PS_JOIN_MITER = 0x00002000,
   PS_GEOMETRIC = 0x00010000
 } PenStyle;

PS_COSMETIC: A pen type that specifies a line with a width of one logical unit and a style that is a solid color.

PS_ENDCAP_ROUND: A line cap that specifies round ends.

PS_JOIN_ROUND: A line join that specifies round joins.

PS_SOLID: A line style that is a solid color.

PS_DASH: A line style that is dashed.

PS_DOT: A line style that is dotted.

PS_DASHDOT: A line style that consists of alternating dashes and dots.

PS_DASHDOTDOT: A line style that consists of dashes and double dots.

PS_NULL: A line style that is invisible.

PS_INSIDEFRAME: A line style that is a solid color. When this style is specified in a drawing record that takes a bounding rectangle, the dimensions of the figure are shrunk so that it fits entirely in the bounding rectangle, considering the width of the pen.

PS_USERSTYLE: A line style that is defined by a styling array, which specifies the lengths of dashes and gaps in the line.

PS_ALTERNATE: A line style in which every other pixel is set. This style is applicable only to a pen type of PS_COSMETIC.

PS_ENDCAP_SQUARE: A line cap that specifies square ends.

PS_ENDCAP_FLAT: A line cap that specifies flat ends.

PS_JOIN_BEVEL: A line join that specifies beveled joins.

PS_JOIN_MITER: A line join that specifies mitered joins when the lengths of the joins are within the current miter length limit. If the lengths of the joins exceed the miter limit, beveled joins are specified.

The miter length limit is a metafile state property that is set by the EMR_SETMITERLIMIT record (section 2.3.11.21).

PS_GEOMETRIC: A pen type that specifies a line with a width that is measured in logical units and a style that can contain any of the attributes of a brush.