Compartir a través de


CRect::SubtractRect

Crea las dimensiones de CRect igual a resta de lpRectSrc2 de lpRectSrc1.

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

Parámetros

  • lpRectSrc1
    Señala la estructura de RECT o el objeto de CRect de los que un rectángulo debe ser restado.

  • lpRectSrc2
    Señale a la estructura de RECT o el objeto de CRect que deben ser restados de rectángulo notificado por a lpRectSrc1 el parámetro.

Valor devuelto

Distinto de cero si la función es correcta; si no 0.

Comentarios

Resta es el rectángulo menor que contiene todos los puntos de lpRectScr1 que no estén en la intersección de lpRectScr1 y de lpRectScr2.

El rectángulo especificado por lpRectSrc1 se sin cambios si el rectángulo especificado por lpRectSrc2 no se superpone completamente el rectángulo especificado por lpRectSrc1 en al menos una de x o de las y-direcciones.

Por ejemplo, si lpRectSrc1 fuera (10,10, 100.100) y lpRectSrc2 era (50,50, 150.150), el rectángulo indicada por lpRectSrc1 sería sin cambios cuando la función devuelto.Si lpRectSrc1 fuera (10,10, 100.100) y lpRectSrc2 era (50,10, 150.150), sin embargo, el rectángulo indicada por lpRectSrc1 contendría las coordenadas (10,10, 50.100) a la función devuelto.

SubtractRect no es igual que operador - ni operador - =.Ninguno de estos operadores llaman nunca SubtractRect.

[!NOTA]

Ambos rectángulos deben ser normalizados o esta función puede producir un error.Puede llamar a NormalizeRect para normalizar los rectángulos antes de llamar a esta función.

Ejemplo

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

encabezado: atltypes.h

Vea también

Referencia

Clase de CRect

Gráfico de jerarquía

CRect::operator -

CRect::operator - =

CRect::IntersectRect

CRect::UnionRect

CRect::NormalizeRect

SubtractRect