L_PntSetTransformation
#include "LtPnt.h"
L_INT EXT_FUNCTION L_PntSetTransformation(pPaint, pXForm)
pPAINTHANDLE pPaint; |
/* pointer to a paint handle */ |
pPAINTXFORM pXForm; |
/* pointer to a structure */ |
Sets the transformation information for the toolkit.
Parameter |
Description |
pPaint |
Pointer to a paint handle. |
pXForm |
Pointer to a PAINTXFORM structure that contains transform values used to transform input coordinates. If this parameter is NULL, the zoom will default to 100 and the offset values will default to 0. |
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Comments
The toolkit will transform all input and output coordinates, using the values set by this function, unless otherwise stated.
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
Functions: |
L_PntGetTransformation, L_PntGetDCExtents, L_PntSetDCExtents, L_PntSetMetrics |
Topics: |
|
|
Example
L_INT g_nZoomFactor = 500 ;
L_INT g_nHScroll = 0 ; /* current scroll bar horzontal value */
L_INT g_nVScroll = 0 ; /* current scroll bar vertical value */
L_INT OnPaintShape ( HWND hWnd, pBITMAPHANDLE pBitmap )
{
pPAINTHANDLE pPaint ;
HDC hDC;
RECT rcView ;
L_INT nXOffset, nYOffset ;
RECT rcShapeRect ;
PAINTXFORM PntXForm ;
/* Initiate the Paint toolkit */
if ( SUCCESS != L_PntInit ( &pPaint ) )
{
return FAILURE ;
}
/* set the painting rectangel */
SetRect ( &rcView, 0, 0, BITMAPWIDTH ( pBitmap ), BITMAPHEIGHT ( pBitmap ) ) ;
if ( g_nZoomFactor < 100 )
{
nXOffset = - MulDiv ( g_nHScroll, 100, g_nZoomFactor ) ;
nYOffset = - MulDiv ( g_nVScroll, 100, g_nZoomFactor ) ;
}
else
{
nXOffset = - g_nHScroll ;
nYOffset = - g_nVScroll ;
}
OffsetRect ( &rcView, nXOffset, nYOffset ) ;
rcView.left = MulDiv ( rcView.left, g_nZoomFactor, 100 ) ;
rcView.top = MulDiv ( rcView.top, g_nZoomFactor, 100 ) ;
rcView.right = MulDiv ( rcView.right, g_nZoomFactor, 100 ) ;
rcView.bottom = MulDiv ( rcView.bottom, g_nZoomFactor, 100 ) ;
// set the paintin transformatoins values.
PntXForm.nZoom = g_nZoomFactor ;
PntXForm.nXOffset = - rcView.left ;
PntXForm.nYOffset = - rcView.top ;
/* Set the painting transformations to reflect a zoom-in by 5:1 */
L_PntSetTransformation ( pPaint, &PntXForm ) ;
/* Get the device context */
hDC = GetDC ( hWnd ) ;
/* paint the bitmap */
L_PaintDC( hDC, pBitmap, NULL, NULL, &rcView, NULL, SRCCOPY ) ;
/* Set the rectangle coordinates with respect to the DC dimensions*/
SetRect ( &rcShapeRect, 10, 10, 150, 150 ) ;
/* Use the current shape properties to draw a rectangle to DC (hDC) */
L_PntDrawShapeRectangle ( pPaint, hDC, &rcShapeRect ) ;
/* Release the device context */
ReleaseDC ( hWnd, hDC ) ;
/* Free the paint tools handle */
L_PntFree ( pPaint ) ;
return SUCCESS ;
}