Compartilhar via


CRect::SubtractRect

Faz com que as dimensões do CRect igual a subtração de lpRectSrc2 de lpRectSrc1.

BOOL SubtractRect( 
   LPCRECT lpRectSrc1, 
   LPCRECT lpRectSrc2  
) throw( );

Parâmetros

  • lpRectSrc1
    Aponta para o RECT a estrutura ou CRect objeto do qual um retângulo para ser subtraído.

  • lpRectSrc2
    Aponta para o RECT estrutura de ou CRect objeto que está a ser subtraído do retângulo apontado pela lpRectSrc1 parâmetro.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

A subtração é o menor retângulo que contém todos os pontos da lpRectScr1 que não estão na interseção da lpRectScr1 e lpRectScr2.

O retângulo especificado por lpRectSrc1 não será se o retângulo especificado pelo alterado lpRectSrc2 não se sobreponha completamente o retângulo especificado por lpRectSrc1 em pelo menos um no x ou y-direções.

Por exemplo, se lpRectSrc1 foram (10,10, 100,100) e lpRectSrc2 foram (50,50, 150,150), o retângulo apontada por lpRectSrc1 seria inalterado quando a função retornou. If lpRectSrc1 foram (10,10, 100,100) e lpRectSrc2 foram (50,10, 150,150), no entanto, o retângulo apontada por lpRectSrc1 contém as coordenadas (10,10, 50,100) quando a função retornou.

SubtractRect não é igual operador- nor operador =.Nenhum desses operadores nunca chama SubtractRect.

Observação:

Os dois retângulos devem ser normalizados ou essa função pode falhar.Você pode chamar NormalizeRect para normalizar os retângulos antes de chamar essa função.

Exemplo

RECT   rectOne;
RECT   rectTwo;

rectOne.left = 10;
rectOne.top = 10;
rectOne.bottom = 100;
rectOne.right = 100;

rectTwo.left = 50;
rectTwo.top = 10;
rectTwo.bottom = 150;
rectTwo.right = 150;

CRect   rectDiff;

rectDiff.SubtractRect(&rectOne, &rectTwo);

CRect   rectResult(10, 10, 50, 100);

ASSERT(rectDiff == rectResult);

// works for CRect, too, since there is
// implicit CRect -> LPCRECT conversion

CRect rect1(10, 10, 100, 100);
CRect rect2(50, 10, 150, 150);
CRect rectOut;

rectOut.SubtractRect(rect1, rect2);
ASSERT(rectResult == rectOut);   

Requisitos

Cabeçalho: atltypes.h

Consulte também

Referência

Classe CRect

Gráfico de hierarquia

CRect::operador-

CRect::operador =

CRect::IntersectRect

CRect::UnionRect

CRect::NormalizeRect

SubtractRect

Outros recursos

CRect membros