CRect::SubtractRect
Díky rozměry CRect rovna odčítání z lpRectSrc2 z lpRectSrc1 .
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
Parametry
lpRectSrc1
Odkazuje RECT struktury nebo CRect objektu, ze kterého má být odečtena obdélník.lpRectSrc2
Odkazuje RECT struktury nebo CRect objektu, která má být odečtena z obdélníku odkazuje lpRectSrc1 parametr.
Vrácená hodnota
Nenulová hodnota, pokud je tato funkce úspěšná. jinak 0.
Poznámky
Odčítání je nejmenšího obdélníku, který obsahuje všechny body v lpRectScr1 nejsou v průsečíku lpRectScr1 a lpRectScr2.
Obdélník podle lpRectSrc1 bude beze změny, pokud se obdélník podle lpRectSrc2 zcela nepřekrývá obdélník podle lpRectSrc1 alespoň v jedné z x - nebo y pokynů.
Například pokud lpRectSrc1 byly (10,10, 100,100) a lpRectSrc2 byly (50,50, 150,150), obdélník odkazuje lpRectSrc1 by beze změny, když funkce vrátila.Pokud lpRectSrc1 byly (10,10, 100,100) a lpRectSrc2 byly (50,10, 150,150) však obdélník odkazuje lpRectSrc1 bude obsahovat souřadnice (10,10, 50,100) při funkce vrátila.
SubtractRectnení stejný jako operátor - ani operátor-=.Ani jeden z těchto operátorů neustále volá SubtractRect .
[!POZNÁMKA]
Musí být normalizovány oba obdélníky nebo může dojít k selhání funkce.Můžete volat NormalizeRect před voláním funkce normalizuje obdélníky.
Příklad
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);
Požadavky
Záhlaví: atltypes.h