Partilhar via


CRgn::CombineRgn

Cria uma nova região GDI combinando duas regiões existentes.

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

Parâmetros

  • pRgn1
    Identifica uma região existente.

  • pRgn2
    Identifica uma região existente.

  • nCombineMode
    Especifica a operação a ser executada ao combinar as regiões de fonte de dois.Pode ser qualquer um dos seguintes valores:

    • RGN_AND   Usa áreas de ambas as regiões (interseção) em sobreposição.

    • RGN_COPY   Cria uma cópia da região 1 (identificadas por pRgn1).

    • RGN_DIFF   Cria uma região consiste em áreas de região (identificadas por 1pRgn1) que não fazem parte da região (identificado pelo 2 pRgn2).

    • RGN_OR   Combina as duas regiões em sua totalidade (união).

    • RGN_XOR   Combina as duas regiões, mas remove áreas sobrepostas.

Valor de retorno

Especifica o tipo da região resultante.Ele pode ser um dos seguintes valores:

  • COMPLEXREGION   Nova região tem sobrepostas bordas.

  • ERRO   Nenhuma nova região criado.

  • NULLREGION   Nova região está vazia.

  • SIMPLEREGION   Nova região tem sem bordas sobrepostas.

Comentários

sistema autônomo regiões são combinadas sistema autônomo especificado por nCombineMode.

Os dois especificado regiões são combinados e o identificador de região resultante é armazenado no CRgn objeto. Portanto, qualquer região é armazenado na CRgn objeto é substituído pela região combinado.

O dimensionar de uma região é limitado a 64 K de memória ou de unidades lógicas de 32.767 a 32.767, o que for menor.

Use CopyRgn simplesmente copiar uma região em outra região.

Exemplo

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

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CRgn

Gráfico de hierarquia

CRgn::CopyRgn

CombineRgn

Outros recursos

CRgn membros