CRect::SubtractRect
Macht die Dimensionen von CRect gleich der Subtraktion von lpRectSrc2 von lpRectSrc1.
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
Parameter
lpRectSrc1
Zeigt auf RECT-Struktur oder zu CRect-Objekt, aus denen ein Rechteck subtrahiert werden soll.lpRectSrc2
Zeigt auf RECT-Struktur oder zu CRect-Objekt, die vom Rechteck subtrahiert werden soll, das an den lpRectSrc1-Parameter angezeigt wird.
Rückgabewert
Ungleich 0 (null), wenn die Funktion erfolgreich; 0 andernfalls.
Hinweise
Die Subtraktion ist das kleinste Rechteck, das alle Punkte in lpRectScr1 enthält, die nicht in der Schnittmenge von lpRectScr1 und von lpRectScr2 sind.
Das Rechteck, das durch lpRectSrc1 angegeben wird, wird nicht geändert, wenn das Rechteck, das durch lpRectSrc2 angegeben wird, nicht vollständig sich das Rechteck schneidet, das mindestens über lpRectSrc1 in einer des x oder der YRichtungen angegeben wird.
Wenn lpRectSrc1 (10,10, 100.100) waren und lpRectSrc2 waren (50,50, 150.150), wird das Rechteck, das auf durch lpRectSrc1 gezeigt wurde, unverändert sein, als die Funktion zurückgibt.Wenn lpRectSrc1 (10,10, 100.100) waren und lpRectSrc2 waren (50,10, 150.150), jedoch wird das Rechteck, das auf durch lpRectSrc1 gezeigt wurde, die Koordinaten (10,10, 50.100) enthalten als die Funktion zurückgibt.
SubtractRect ist nicht das selbe wie Operator - noch Operator - =.Keiner dieser Operatoren ruft eine SubtractRect auf.
Hinweis |
---|
Beide der Rechtecke müssen normalisiert werden, oder diese Funktion schlägt möglicherweise aus.Sie können NormalizeRect aufrufen, um die Rechtecke zu normalisieren, bevor Sie diese Funktion aufrufen. |
Beispiel
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);
Anforderungen
Header: atltypes.h