Clipping is used by the LRasterPaint class to limit the output to a user-defined region. This can be done using the LRasterPaint::SetClipRgn function. To get the last clipping region set, call LRasterPaint::GetClipRgn. To offset a clipping region, call LRasterPaint::OffsetClipRgn.
L_INT OnPaintShape ( HWND hWnd )
{
LRasterPaint Paint ;
HDC hDC ;
HRGN hClipRgn ;
RECT rcShapeRect ;
/* Initiate the Paint toolkit */
if ( SUCCESS != Paint.Initialize( ) )
{
return FAILURE ;
}
/* Get device context to draw on */
hDC = GetDC ( hWnd ) ;
/*Set the rectangle coordinates with respect to the DC dimensions*/
SetRect ( &rcShapeRect, 10, 10, 110, 110 ) ;
/*Use the current shape properties to draw an ellipse to DC (hDC) */
Paint.DrawShapeEllipse ( hDC, &rcShapeRect ) ;
hClipRgn = CreateRectRgn ( 120, 20, 200, 100 ) ;
/*Set painting clip region */
Paint.SetClipRgn ( hClipRgn ) ;
/*Set the rectangle coordinates with respect to the DC dimensions*/
SetRect ( &rcShapeRect, 110, 10, 210, 110 ) ;
/*Use the current shape properties to draw an ellipse to DC (hDC) */
Paint.DrawShapeEllipse ( hDC, &rcShapeRect ) ;
/*Delete the clip region */
DeleteObject ( ( HRGN ) hClipRgn ) ;
/*Release the device context */
ReleaseDC ( hWnd, hDC ) ;
/* Free the paint tools class object */
Paint.Free ( ) ;
return SUCCESS ;
}