Sets the toolkit transformation information.
#include "Ltwrappr.h"
L_INT LRasterPaint::SetTransformation(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.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes |
The toolkit will transform all input and output coordinates, using the values set by this function, unless otherwise stated.
L_INT LRasterPaint_SetTransformationExample( CWnd* pWnd, LBitmap* pBitmap, L_INT m_nZoomFactor, L_INT m_nHscroll, L_INT m_nVscroll){//data member L_INT m_nZoomFactor = 500 ;//data member L_INT m_nHscroll = 0 ;//data member L_INT m_nVscroll = 0 ;L_INT nRet;LRasterPaint rstp ;CDC* pDC = pWnd->GetDC() ;RECT rcView ;L_INT nXOffset, nYOffset ;RECT rcShapeRect ;PAINTXFORM PntXForm ;RECT rcDCExtents ;/* Initiate the Paint toolkit */nRet = rstp.Initialize ();if(nRet != SUCCESS)return nRet;/* set the painting rectangel */SetRect ( &rcView, 0, 0, pBitmap->GetWidth() , pBitmap->GetHeight() ) ;if ( m_nZoomFactor < 100 ){nXOffset = - MulDiv ( m_nHscroll, 100, m_nZoomFactor ) ;nYOffset = - MulDiv ( m_nVscroll, 100, m_nZoomFactor ) ;}else{nXOffset = - m_nHscroll ;nYOffset = - m_nVscroll ;}OffsetRect ( &rcView, nXOffset, nYOffset ) ;rcView.left = MulDiv ( rcView.left, m_nZoomFactor, 100 ) ;rcView.top = MulDiv ( rcView.top, m_nZoomFactor, 100 ) ;rcView.right = MulDiv ( rcView.right, m_nZoomFactor, 100 ) ;rcView.bottom = MulDiv ( rcView.bottom, m_nZoomFactor, 100 ) ;// set the paintin transformatoins values.PntXForm.nZoom = m_nZoomFactor ;PntXForm.nXOffset = - rcView.left ;PntXForm.nYOffset = - rcView.top ;/* Set the painting transformations to reflect a zoom-in by 5:1 */nRet = rstp.SetTransformation ( &PntXForm ) ;if(nRet != SUCCESS)return nRet;/* paint the bitmap */pBitmap->Paint()->SetDC( pDC->m_hDC );pBitmap->SetDstRect( &rcView );pBitmap->Paint()->PaintDC();/* Set the rectangle coordinates with respect to the DC dimensions*/SetRect ( &rcShapeRect, 10, 10, 150, 150 ) ;/* Get the destination DC dimensions */pWnd->GetClientRect ( &rcDCExtents ) ;/* Set the toolkit user DC extents */nRet = rstp.SetDCExtents ( &rcDCExtents ) ;if(nRet != SUCCESS)return nRet;/* Use the current shape properties to draw a rectangle to DC (hDC) */nRet = rstp.DrawShapeRectangle ( pDC->m_hDC, &rcShapeRect ) ;if(nRet != SUCCESS)return nRet;/* Release the device context */pWnd->ReleaseDC( pDC ) ;/* Free the paint tools handle */nRet = rstp.Free ( ) ;if(nRet != SUCCESS)return nRet;return SUCCESS ;}