CRgn::CombineRgn

int CombineRgn( CRgn* pRgn1, CRgn* pRgn2, int nCombineMode );

返回值:
返回最后结果区域的类型。它可以是下列值之一:
·COMPLEXREGION新区域具有相互重叠的边界。
·ERROR未创建新区域。
·NULLREGION新区域为空。
·SIMPLEREGION新区域没有相互重叠的边界。

参数:
pRgn1表示一个已经存在的区域。
pRgn2表示一个已经存在的区域。
nCombineMode指定当组合两个源区域时要执行的操作。它可以是下列值之一:
·RGN_AND使用两个区域互相重叠的区域(相交区域)。
·RGN_COPY创建区域1(由pRgn1标识)的一个拷贝
·RGN_DIEF创建一个区域,该区域由区域1(由pRgn1标识)的不是区域2(由pRgn2标识)的那一部分区域组成。
·RGN_OR组合两个区域的整个部分(两个区域的并)。
·RGN_XOR组合两个区域,但去掉相互重叠的区域。

说明:
此成员函数通过组合两个已有的区域来创建一个新的GDI区域。所组合成的区域就像nCombineMode所指定的一样。
两个指定的区域被组合,所得到的结果区域的句柄被保存在CRgn对象中。因此,不管CRgn中原来保存的区域是什么,都将被合并后的区域所代替。
区域的大小被限制在32767×32767个逻辑单位和64K内存这两个值中较小的那个值的范围内。
使用CopyRgn只是简单地将一个区域拷贝到另一个区域。

请参阅:CRgn::CopyRgn, ::CombineRgn