The CombineRgn function combines two regions and stores the result in a third region. The two regions are combined according to the specified mode.
int CombineRgn(
HRGN hrgnDest, |
// handle to destination region |
HRGN hrgnSrc1, |
// handle to source region |
HRGN hrgnSrc2, |
// handle to source region |
int fnCombineMode |
// region combining mode |
); |
Value |
Description |
RGN_AND |
Creates the intersection of the two combined regions. |
RGN_COPY |
Creates a copy of the region identified by hrgnSrc1. |
RGN_DIFF |
Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. |
RGN_OR |
Creates the union of two combined regions. |
RGN_XOR |
Creates the union of two combined regions except for any overlapping areas. |
The return value specifies the type of the resulting region. It can be one of the following values:
Value |
Meaning |
NULLREGION |
The region is empty. |
SIMPLEREGION |
The region is a single rectangle. |
COMPLEXREGION |
The region is more than a single rectangle. |
ERROR |
No region is created. |
The three regions need not be distinct. For example, the hrgnSrc1 parameter can equal the hrgnDest parameter.
CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn