L_PntRegionScale

#include "LtPnt.h"

L_LTPNT_API L_INT L_PntRegionScale(pPaint, nHScaleFactor, nVScaleFactor, nAlignment, phDestRgn)

Scales a region.

Parameters

pPAINTHANDLE pPaint

Pointer to a paint handle.

L_INT nHScaleFactor

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.

L_INT nVScaleFactor

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.

PAINTALIGNMENT nAlignment

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.

pHRGN phDestRgn

Pointer to the region to be translated. After translation, the toolkit will delete the old region and replace it with the new one.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

The user is responsible for deleting the resulting region.

Required DLLs and Libraries

See Also

Functions

Topics

Example

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 ; 
} 
Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Digital Paint C API Help