CombineRgn

CombineRgn是將兩個區域組合為一個新區域。

基本介紹

  • 中文名:CombineRgn
  • 說明:將兩個區域組合為一個新區域
  • hDestRgn:被設定為hSrcRgn1的拷貝
  • Long:下列常數之一
聲明,參數表,

聲明

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

參數表

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);

相關詞條

熱門詞條

聯絡我們