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