LRasterPaint::RegionScale

#include "Ltwrappr.h"

L_INT LRasterPaint::RegionScale(nHScaleFactor, nVScaleFactor, nAlignment, phDestRgn)

L_INT nHScaleFactor;

/* horizontal scale factor */

L_INT nVScaleFactor;

/* vetical scale factor */

PAINTALIGNMENT nAlignment;

/* alignment type*/

pHRGN phDestRgn;

/* pointer to the region handle */

Scales a region.

Parameter

Description

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.

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 the original dimensions.

 

99

0.99 times the original dimensions.

 

98

0.98 times the original dimensions.

 

1

0.01 times the original dimensions.

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.

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

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

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:

LRasterPaint::SetProperty, LRasterPaint::SetTransformation, LRasterPaint::SetDCExtents, LRasterPaint::SetMetrics, LRasterDialog::DoModalRegion, LRasterPaint::GetClipRgn, LRasterPaint::OffsetClipRgn, LRasterPaint::RegionBorder, LRasterPaint::RegionColor, LRasterPaint::RegionEllipse, LRasterPaint::RegionPolygon, LRasterPaint::RegionRect, LRasterPaint::RegionRoundRect, LRasterPaint::RegionSurface, LRasterPaint::RegionTranslate, LRasterPaint::SetClipRgn, Class Members

Topics:

Creating a Region

Example

L_INT RegionScaleTest ( CWnd* pWnd )
{
   LRasterPaint rstp;
   CDC* pDC = pWnd->GetDC() ;
   RECT rcRegion ;
   HRGN hDestRgn ; 

   /* Initiate the Paint toolkit */
   if ( SUCCESS != rstp.Initialize ( ) )
   {
        return FAILURE ; 
   }

   /* Set the coordinates with respect to the DC dimensions*/
   SetRect ( &rcRegion, 250, 110, 350, 210 ) ;

   /* Use the current region properties and the current painting 
       transformations to create an ellipse region */
   rstp.RegionEllipse ( pDC->m_hDC, &rcRegion, &hDestRgn ) ;

   /* Display the resulted region */
   FrameRgn ( pDC->m_hDC, hDestRgn, ( HBRUSH ) GetStockObject ( BLACK_BRUSH ), 1, 1 ) ;
  
   /* Scale the region */
   rstp.RegionScale (  300, 300, 
                                     ( PAINTALIGNMENT ) (PAINT_ALIGNMENT_HCENTER | PAINT_ALIGNMENT_VCENTER), 
                                     &hDestRgn ) ; 

   /* Display the scaled region */
   FrameRgn ( pDC->m_hDC, hDestRgn, ( HBRUSH ) GetStockObject ( BLACK_BRUSH ), 1, 1 ) ;
   
   /*Delete the region */
   DeleteObject ( hDestRgn ) ;

   /* Free the paint tools handle */
   rstp.Free ( ) ;

   pWnd->ReleaseDC( pDC ) ;

   return SUCCESS ;
}