Udostępnij za pośrednictwem


CRgn::CombineRgn

Tworzy nowy region GDI przez połączenie dwóch istniejących regionów.

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

Parametry

  • pRgn1
    Określa istniejący region.

  • pRgn2
    Określa istniejący region.

  • nCombineMode
    Określa działanie wykonywane podczas łączenia regionów dwa źródła.Mogą to być jeden z następujących wartości:

    • RGN_AND używa nakładające się obszary obu regionów (przecięcie).

    • RGN_COPY tworzy kopię region 1 (identyfikowane przez pRgn1).

    • RGN_DIFF tworzy regionu składającą się z obszarów regionu 1 (identyfikowane przez pRgn1) nie są częścią regionu 2 (określone przez pRgn2).

    • RGN_OR łączy obu regionów w całości (Unia).

    • RGN_XOR łączy obu regionów, ale usuwa nakładające się obszary.

Wartość zwracana

Określa typ wynikowy regionu.Mogą to być jedna z następujących wartości:

  • COMPLEXREGION nowy region ma nakładających się obramowanie.

  • Błąd nie nowy region utworzone.

  • NULLREGION nowy region jest puste.

  • SIMPLEREGION nowy region nie ma nakładających się obramowania.

Uwagi

Łączone są regiony określone przez nCombineMode.

Dwa określone regiony są łączone i uchwyt regionu wynikowy jest przechowywany w CRgn obiektu.W ten sposób, niezależnie od regionu są przechowywane w CRgn obiektu zastępuje Scalonej regionu.

Rozmiar regionu jest ograniczona do 32 767 przez 32 767 logiczne jednostki lub 64 K pamięci, jest mniejsze.

Użyj CopyRgn po prostu skopiować jednego regionu do innego regionu.

Przykład

CRgn   rgnA, rgnB, rgnC;

VERIFY(rgnA.CreateRectRgn( 50, 50, 150, 150 ));
VERIFY(rgnB.CreateRectRgn( 100, 100, 200, 200 ));
VERIFY(rgnC.CreateRectRgn( 0, 0, 50, 50 ));

int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_OR );
ASSERT( nCombineResult != ERROR && nCombineResult != NULLREGION );

CBrush br1, br2, br3;
VERIFY(br1.CreateSolidBrush( RGB(255, 0, 0) ));  // rgnA Red
VERIFY(pDC->FrameRgn( &rgnA, &br1, 2, 2 ));
VERIFY(br2.CreateSolidBrush( RGB(0, 255, 0) ));  // rgnB Green
VERIFY(pDC->FrameRgn( &rgnB, &br2, 2, 2 ));
VERIFY(br3.CreateSolidBrush( RGB(0, 0, 255) ));  // rgnC Blue
VERIFY(pDC->FrameRgn( &rgnC, &br3, 2, 2 ));

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CRgn

Wykres hierarchii

CRgn::CopyRgn

CombineRgn