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