複製鏈接
請複製以下鏈接發送給好友

CombineRgn

鎖定
CombineRgn是將兩個區域組合為一個新區域。
中文名
CombineRgn
説    明
將兩個區域組合為一個新區域
hDestRgn
被設置為hSrcRgn1的拷貝
Long
下列常數之一

目錄

CombineRgn聲明

Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
將兩個區域組合為一個新區域

CombineRgn參數表

hDestRgn ------- Long,包含組合結果的區域句柄
hSrcRgn1 ------- Long,源區域1
hSrcRgn2 ------- Long,源區域2
nCombineMode --- Long,組合兩區域的方法。可設為下述常數
RGN_AND
hDestRgn被設置為兩個源區域的交集(集合中的交集)
RGN_COPY
hDestRgn被設置為hSrcRgn1的拷貝
RGN_DIFF
hDestRgn被設置為hSrcRgn1與hSrcRgn2相減後的區域(集合中的差集)
RGN_OR hDestRgn被設置為兩個區域的並集(集合中的並集)
RGN_XOR
hDestRgn被設置為兩個區域的異或操作後的區域(集合中的異或操作)
[返回值]
Long,下列常數之一:
COMPLEXREGION:區域有互相交疊的邊界
SIMPLEREGION:區域邊界沒有互相交疊
NULLREGION:區域為空
ERRORAPI:不能創建組合區域
VC例子:
CRgn r1,r2,r3,rgn;
r1.CreateRectRgn(43,30,100,54);
r2.CreateRoundRectRgn(103,34,145,89,22,11);
r3.CreateEllipticRgn(115,79,195,112);
rgn.CreateRectRgn(0,0,10,10);
//合併
rgn.CombineRgn(&r1,&r2,RGN_OR);
rgn.CombineRgn(&rgn,&r3,RGN_OR);
CDC *pdc=GetDC;
CBrush bsh(0xFF00);
pdc->FillRgn(&rgn,&bsh);
rgn.DeleteObject;
r1.DeleteObject;
r2.DeleteObject;
r3.DeleteObject;
ReleaseDC(pdc);