这一函式将两个剪裁区域(hSrcRgn1和hSrcRgn2)组合起来并用代号hDestRgn指向组合成的剪裁区域。这三个剪裁区域代号都必须是有效的,但是hDestRgn原来所指向的剪裁区域被破坏掉了(当您使用这个函式时,您可能要让hDestRgn在初始时指向一个小的矩形剪裁区域)。
iCombine参数说明hSrcRgn1和hSrcRgn2如何组合,见表5-9。
从CombineRgn传回的iRgnType值是下列之一:NULLREGION,表示得到一个空剪裁区域;SIMPLEREGION,表示得到一个简单的矩形、椭圆或者多边形;COMPLEXREGION,表示多个矩形、椭圆或多边形的组合;ERROR,表示出错了。
剪裁区域的代号可以用於四个绘图函式:
FillRgn、FrameRgn和InvertRgn类似於FillRect、FrameRect和InvertRect。FrameRgn的xFrame和yFrame参数是画在区域周围的边框的宽度和高度。PaintRgn函式用装置内容中目前画刷填入所指定的区域。所有这些函式都假定区域是用逻辑座标定义的。
在您用完一个区域後,可以像删除其他GDI物件那样删除它:
矩形与区域的剪裁
区域也在剪裁中扮演了一个角色。InvalidateRect函式使显示的一个矩形区域失效,并产生一个WM_PAINT讯息。例如,您可以使用InvalidateRect函式来清除显示区域并产生一个WM_PAINT讯息: