CRect::SubtractRect
將維度 CRect 等於 lpRectSrc2 減法由 lpRectSrc1。
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
參數
lpRectSrc1
為矩形要減去的 的長度 結構或 CRect 物件。lpRectSrc2
會從矩形減去所指向的 lpRectSrc1 參數的 RECT 結構或 CRect 物件。
傳回值
如果不是零,則函式成功,則為 0。
備註
減法是 lpRectScr1 包含所有的點不在 lpRectScr1 和 lpRectScr2 交集的最小矩形。
如果 lpRectSrc2 指定矩形未完整重疊 lpRectSrc1 指定矩形在其中至少有一個 X 或 Y 方向中, lpRectSrc1 指定矩形會保持不變。
例如,如果 lpRectSrc1 ,為 (10,10, 100,100),並 lpRectSrc2 為 (50,50, 150,150) 的矩形,指向 lpRectSrc1 不變,則函式會傳回。如果 lpRectSrc1 為 (10,10, 100,100),並 lpRectSrc2 為 (50,10, 150,150),但是,矩形所指向的 lpRectSrc1 將包含座標 (10,10, 50,100),則函式會傳回。
SubtractRect 與 -運算子 也不 - =運算子。這些運算子不會呼叫 SubtractRect。
注意事項 |
---|
兩個矩形必須正規化或這個函式可能會失敗。您可以呼叫 NormalizeRect 在呼叫這個函式前正常化矩形。 |
範例
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);
需求
Header: atltypes.h