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 painting
trasnformations 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 ;
}