Partager via


CRect::SubtractRect

Rend les dimensions de CRect égale à la soustraction d' lpRectSrc2 d' lpRectSrc1.

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

Paramètres

  • lpRectSrc1
    Les points à RECT structure ou l'objet d' CRect dont un rectangle doit être soustrait.

  • lpRectSrc2
    Les points à RECT structure ou l'objet d' CRect qui doivent être soustraits du rectangle globale pointe vers le paramètre d' lpRectSrc1 .

Valeur de retour

Une valeur différente de zéro si la fonction est réussie ; sinon 0.

Notes

La soustraction est le plus petit rectangle qui contient tous les points dans lpRectScr1 qui ne sont pas dans l'intersection d' lpRectScr1 et de lpRectScr2.

Le rectangle spécifié par lpRectSrc1 sera inchangé si le rectangle spécifié par lpRectSrc2 ne recoupe pas complètement le rectangle spécifié par lpRectSrc1 dans au moins une des x ou y les directions.

Par exemple, si lpRectSrc1 étaient (10,10, 100.100) et lpRectSrc2 étaient (50,50, 150.150), le rectangle globale pointe vers lpRectSrc1 serait inchangé lorsque la fonction retournée.Si lpRectSrc1 étaient (10,10, 100.100) et lpRectSrc2 étaient (50,10, 150.150), toutefois, le rectangle globale pointe vers lpRectSrc1 contiendrait les coordonnées (10,10, 50.100) lorsque la fonction retournée.

SubtractRect n'est pas identiques qu' opérateur - ni opérateur - =.Aucun de ces opérateurs n'appelle jamais SubtractRect.

[!REMARQUE]

Les deux rectangles doivent être normaux ou cette fonction peut échouer.Vous pouvez appeler NormalizeRect pour normaliser les rectangles avant d'appeler cette fonction.

Exemple

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

Configuration requise

Header: atltypes.h

Voir aussi

Référence

Classe de CRect

Graphique de la hiérarchie

CRect::operator -

CRect::operator - =

CRect::IntersectRect

CRect::UnionRect

CRect::NormalizeRect

SubtractRect