CRect::SubtractRect
lpRectSrc1から減算 lpRectSrc2 のと同じ CRect の寸法を作成します。
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
パラメーター
lpRectSrc1
四角形が引かれた CRect のオブジェクトまたは RECT をポイントし、構成します。lpRectSrc2
lpRectSrc1 のパラメーターが指す四角形から引く CRect のオブジェクトまたは RECT をポイントし、構成します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
減算 lpRectScr1 では lpRectScr1 と lpRectScr2の間に存在しないポイントをすべて備えた最小の四角形です。
lpRectSrc1 で指定された四角形は lpRectSrc2 で指定された四角形が完全に x と y 方向に 1 文字以上で 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);
必要条件
ヘッダー: atltypes.h