Painting a Shape

LEADTOOLS DigitalPaint provides the following functions for painting a shape:

L_PntDrawShapeLine

L_PntDrawShapeRectangle

L_PntDrawShapeRoundRect

L_PntDrawShapeEllipse

L_PntDrawShapePolygon

L_PntDrawShapePolyBezier

These functions require:

image\sqrblit.gif a valid paint handle.

image\sqrblit.gif an optional windows device context.

image\sqrblit.gif the coordinates used to paint the shape.

These functions will draw shapes based on the current shape properties. To determine the current shape properties, call L_PntGetProperty. To set or change the current shape properties, call L_PntSetProperty. For more information on the shape properties, refer to the PAINTSHAPE structure.

Before painting a shape, set the DigitalPaint metrics using the L_PntSetMetrics function.

Any transformation information should be set, using the L_PntSetTransformation function before calling any shape or other painting function. To get the current transformation information, call L_PntGetTransformation.

The following example sets the shape properties, sets the DigitalPaint metrics and paints a line. It assumes the paint handle has been initialized and the bitmap handle is valid:

PAINTSHAPE shape; 

/* Set the required shape properties */
shape.nSize  = sizeof ( PAINTSHAPE ) ;
shape.dwMask = PSF_BORDERWIDTH |
                                PSF_BORDERSTYLE |
                                PSF_BORDERCOLOR |
                                PSF_BORDERENDCAP ;
shape.nBorderWidth  = 10 ; 
shape.nBorderStyle  = PAINT_SHAPE_BORDER_STYLE_DASHDOT ; 
shape.crBorderColor = RGB ( 255, 0, 0 ) ;
shape.nBorderEndCap = PAINT_SHAPE_BORDER_ENDCAP_ROUND ;

/* Set the new shape properties */
L_PntSetProperty
 ( pPaint, PAINT_GROUP_SHAPE, &shape ) ;

/*Select the bitmap into the paint handle*/
L_PntSetMetrics
 ( pPaint, NULL, &hLeadBitmap, NULL ) ;

/* Use the current shape properties to draw a line to the currently selected bitmap*/
L_PntDrawShapeLine
 ( pPaint, hDC, 10, 10, 200, 200 ) ;