LRasterPaint::DrawShapePolyBezier
#include "Ltwrappr.h"
L_INT LRasterPaint::DrawShapePolyBezier(UserDC, pptPoints, nCount)
HDC UserDC; |
/* handle to the device context */ |
LPPOINT pptPoints; |
/* pointer to an array of POINT structures */ |
L_INT nCount; |
/* number of points */ |
Draws a polybezier using the specified points
Parameter |
Description |
UserDC |
Handle to a device context, such as a screen, to use as a display surface. This parameter can also be NULL. The mapping mode of the device context must be MM_TEXT. |
pptPoints |
Pointer to an array of POINT structures that contain the endpoints and control points of the curve(s). |
nCount |
Specifies the number of points in the pptPoints array. This value must be one more than three times the number of curves to be drawn, because each B�zier curve requires two control points and an endpoint, and the initial curve requires an additional starting point. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes |
Comments
The B�zier curve(s) will be drawn using the current shape properties. To determine the current shape properties, call LRasterPaint::GetProperty. To set or change the current shape properties, call LRasterPaint::SetProperty. For more information on the shape properties, refer to the PAINTSHAPE structure.
If UserDC is not NULL, the toolkit will paint the B�zier curve(s) on the specified device context. If UserDC is NULL, the B�zier curve(s) will not be painted on a device context.
If a bitmap has been set using the LRasterPaint::SetMetrics function, the B�zier curve(s) will be drawn on the specified bitmap. If UserDC is not NULL and a bitmap has been set using the LRasterPaint::SetMetrics function, then the B�zier curve(s) will be drawn to both the device context and the bitmap.
Required DLLs and Libraries
LTPNT For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application |
See Also
Example
L_INT DrawPolyBezierTest ( CWnd* pWnd )
{
LRasterPaint rstp;
CDC* pDC = pWnd->GetDC( ) ;
PAINTSHAPE shape;
POINT ptPolyBezier [5];
/* Initiate the Paint toolkit */
if ( SUCCESS != rstp.Initialize ( ) )
{
return FAILURE ;
}
/* Get the current shape properties */
rstp.GetProperty (PAINT_GROUP_SHAPE, &shape ) ;
/* Set the required shape properties */
shape.nSize = sizeof ( PAINTSHAPE ) ;
shape.dwMask = PSF_BORDERWIDTH |
PSF_BORDERSTYLE |
PSF_BORDERCOLOR |
PSF_BORDERENDCAP |
PSF_BACKGROUNDCOLOR ;
shape.nBorderWidth = 2 ;
shape.nBorderStyle = PAINT_SHAPE_BORDER_STYLE_DASH ;
shape.crBorderColor = RGB ( 255, 0, 0 ) ;
shape.nBorderEndCap = PAINT_SHAPE_BORDER_ENDCAP_FLAT ;
shape.crBackgroundColor = RGB ( 255, 255, 192 ) ;
/* set the new shape properties */
rstp.SetProperty (PAINT_GROUP_SHAPE, &shape ) ;
/* set the coordinates with respect to the DC dimensions*/
ptPolyBezier [ 0 ].x = 10 ;
ptPolyBezier [ 0 ].y = 10 ;
ptPolyBezier [ 1 ].x = 150 ;
ptPolyBezier [ 1 ].y = 15 ;
ptPolyBezier [ 2 ].x = 100 ;
ptPolyBezier [ 2 ].y = 160 ;
ptPolyBezier [ 3 ].x = 70 ;
ptPolyBezier [ 3 ].y = 10;
ptPolyBezier [ 4 ].x = 20 ;
ptPolyBezier [ 4 ].y = 20 ;
/* Use the current shape properties to draw a polyBezier to the DC (hDC) */
rstp.DrawShapePolyBezier ( pDC->m_hDC, ptPolyBezier, 4 ) ;
/* Free the paint tools handle */
rstp.Free ( ) ;
pWnd->ReleaseDC( pDC ) ;
return SUCCESS ;
}