Scales a region.
#include "LtPnt.h"
L_LTPNT_API L_INT L_PntRegionScale(pPaint, nHScaleFactor, nVScaleFactor, nAlignment, phDestRgn)
Pointer to a paint handle.
Horizontal scale factor. Valid values are between 1 and 10000. For example:
| Value | Meaning |
|---|---|
| 100 | The same dimensions. |
| 110 | 1.1 times the original dimensions |
| 120 | 1.2 times the original dimensions. |
| 10000 | 100 times the original dimensions. |
| 99 | 0.99 times the original dimensions. |
| 98 | 0.98 times the original dimensions. |
| 1 | 0.01 times the original dimensions. |
Vertical scale factor. Valid values are between 1 and 10000. For example:
| Value | Meaning |
|---|---|
| 100 | The same dimensions. |
| 110 | 1.1 times the original dimensions |
| 120 | 1.2 times the original dimensions. |
| 10000 | 100 times larger than the original dimensions. |
| 99 | 0.99 times the original dimensions. |
| 98 | 0.98 times the original dimensions. |
| 1 | 0.01 times the original dimensions. |
A value that determines how the scaled region will be aligned with respect to the original region. For a list of possible values, refer to PAINTALIGNMENT.
Pointer to the region to be translated. After translation, the toolkit will delete the old region and replace it with the new one.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
The user is responsible for deleting the resulting region.
L_INT PntRegionScaleExample(HWND hWnd){L_INT nRet;pPAINTHANDLE pPaint ;HDC hDC ;RECT rcRegion ;HRGN hRgn ;/* Initiate the Paint toolkit */nRet = L_PntInit ( &pPaint );if ( SUCCESS != nRet ){return nRet;}/* Get the device context */hDC = GetDC ( hWnd ) ;/* Set the coordinates with respect to the DC dimensions*/SetRect ( &rcRegion, 250, 110, 350, 210 ) ;/* Use the current region properties and the current paintingtrasnformations to create an ellipse region */nRet = L_PntRegionEllipse ( pPaint, hDC, &rcRegion, &hRgn) ;if(nRet != SUCCESS)return nRet;/* Display the resulted region */FrameRgn ( hDC, hRgn, ( HBRUSH ) GetStockObject ( BLACK_BRUSH ), 1, 1 ) ;/* Scale the region */nRet = L_PntRegionScale (pPaint,300,300,( PAINTALIGNMENT ) (PAINT_ALIGNMENT_HCENTER |PAINT_ALIGNMENT_VCENTER),&hRgn ) ;if(nRet != SUCCESS)return nRet;/* Display the scaled region */FrameRgn ( hDC, hRgn, ( HBRUSH ) GetStockObject ( BLACK_BRUSH ), 1, 1 ) ;/* Release the device context */ReleaseDC ( hWnd, hDC ) ;/*Delete the region */DeleteObject ( hRgn ) ;/* Free the paint tools handle */L_PntFree ( pPaint ) ;return SUCCESS ;}