CRect::SubtractRect
使维度 CRect 等于 lpRectSrc2 的减法由 lpRectSrc1。
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
参数
lpRectSrc1
指向 RECT 矩形中减去的结构或 CRect 对象。lpRectSrc2
指向 RECT 将从矩形减去指向由 lpRectSrc1 参数的结构或 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