#include "ltwrappr.h"
virtual L_INT LBitmapRgn::SetRgnPolygon(pPoints, uPoints, uFillMode=L_POLY_WINDING)
POINT * pPoints; |
pointer to an array of POINT structures |
L_UINT uPoints; |
number of points in the array |
L_UINT uFillMode; |
flag that indicates how to handle complex crossing lines |
Creates or updates the associated class object's bitmap region by adding a polygonal region.
| Parameter | Description | |
| pPoints | Pointer to an array of POINT structures. The points in the array must be in the order in which the vertices of the polygon are connected. To create the line that closes the polygon, the last point in the array is connected to the first point of the array. | |
| uPoints | The number of points in the array specified by the pPoints parameter. | |
| uFillMode | Flag that indicates how to handle complex crossing lines. The following are valid values, which are illustrated below: | |
| Value | Meaning | |
| L_POLY_WINDING | [0] All pixels that are inside the resulting exterior lines are in the region. | |
| L_POLY_ALTERNATE | [1] The region includes the area between odd-numbered and even-numbered polygon sides on each scan line. | |
![]() |
||
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
To update an existing region, you specify how the new region is to be combined with the existing one. For descriptions of the possibilities, refer to Creating a Bitmap Region.
Required DLLs and Libraries
LTDIS For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application. |
Win32, x64.
L_INT LBitmapRgn__SetRgnPolygonExample(HWND hWnd){RGNXFORM XFormBtmp; // Structure for transforming display coordinatesRECT rClientArea; // Client area of the current windowL_INT nRet = 0;LBitmapRgn lBmpRgn ;LBitmapBase BmpBase;LBitmapBase BmpMask;HRGN hRgn ;POINT PolyPt[5]; // Array of points that defines the polygonPOINT *pPolyPt = PolyPt; // Pointer to the array of points// Get the client area of the current windowGetClientRect(hWnd,&rClientArea);// Load a bitmapnRet = BmpBase.Load(MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP")), 32, ORDER_BGR);if (nRet == SUCCESS){lBmpRgn.SetBitmap(&BmpBase) ;L_UINT uCombineMode = lBmpRgn.GetRgnCombineMode() ;uCombineMode |= L_RGN_OR ;lBmpRgn.SetRgnCombineMode(uCombineMode) ;nRet =lBmpRgn.SetRgnColor(RGB(0,0,0)) ;if(nRet !=SUCCESS)return nRet;// create mask region from bitmapnRet = lBmpRgn.CreateMaskFromBitmapRgn(&BmpMask, sizeof(BITMAPHANDLE)) ;if (nRet == SUCCESS){// set region from mask bitmaplBmpRgn.SetRgnFromMask(BmpMask) ;}elsereturn nRet;// get the region transform used with region functionlBmpRgn.GetRgnXForm(&XFormBtmp) ;/* Set RGNXFORM fields, assuming that the display rectangle is the sameas the client area of the current window */XFormBtmp.uViewPerspective = TOP_LEFT;XFormBtmp.nXScalarNum = BmpBase.GetWidth();XFormBtmp.nXScalarDen = rClientArea.right;XFormBtmp.nYScalarNum = BmpBase.GetHeight() ;XFormBtmp.nYScalarDen = rClientArea.bottom;XFormBtmp.nXOffset = 0;XFormBtmp.nYOffset = 0;// set the region transform to be used in region functionsnRet =lBmpRgn.SetRgnXForm(&XFormBtmp) ;if(nRet !=SUCCESS)return nRet;// Specify the vertices of the polygon (a 5-pointed star)pPolyPt[0].x = 0;pPolyPt[0].y = 0;pPolyPt[1].x = rClientArea.right / 3;pPolyPt[1].y = rClientArea.bottom / 2;pPolyPt[2].x = rClientArea.right / 3;pPolyPt[2].y = 0;pPolyPt[3].x = 0;pPolyPt[3].y = rClientArea.bottom / 3;pPolyPt[4].x = rClientArea.right / 2;pPolyPt[4].y = rClientArea.bottom / 3;// Create a polygonal regionnRet =lBmpRgn.SetRgnPolygon( pPolyPt, 5, L_POLY_ALTERNATE);if(nRet !=SUCCESS)return nRet;// Save the first polygonal regionhRgn = lBmpRgn.GetRgnHandle();// Free the regionnRet =lBmpRgn.Free();if(nRet !=SUCCESS)return nRet;// Add the saved region to the new onenRet =lBmpRgn.SetRgnHandle(hRgn);if(nRet !=SUCCESS)return nRet;/*.........*/// Delete the HRGN objectDeleteObject(hRgn);}return nRet;}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document

