CRect::SubtractRect
Делает измерения CRect равно вычитанию lpRectSrc2 из lpRectSrc1.
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
Параметры
lpRectSrc1
Указывает на RECT составляющих или объекту CRect, из которого прямоугольник быть вычитанным.lpRectSrc2
Указывает на RECT составляющих или объекту CRect, вычитанным из прямоугольника, указанного в параметре lpRectSrc1.
Возвращаемое значение
Ненулевой если функция успешно; в противном случае – значение 0.
Заметки
Вычитание наименьший прямоугольник, содержащий все точки в lpRectScr1, не входящие в пересечении lpRectScr1 и lpRectScr2.
Прямоугольник не изменяется, если прямоугольник указанный lpRectSrc1 будет указанный lpRectSrc2 не полностью перекрывает прямоугольник указанный lpRectSrc1 в крайней мере в одном из направлений осях x и y.
Например, если было 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