Visual C++. Описание стандартных классов - CRect

ОГЛАВЛЕНИЕ


CRect

Класс CRect во многом аналогичен структуре RECT, определенной в операционной системе Windows. Класс CRect включает в себя функции для работы с объектами данного класса и структуры RECT. Объекты класса CRect могут использоваться в аргументах функций вместо объектов структуры RECT, а также вместо указателей LPCRECT или LPRECT. Данный класс является производным от структуры tagRECT (имя tagRECT является менее распространенным именем для структуры RECT). Это означает, что переменные left, top, right и bottom структуры RECT являются доступными членами класса CRect. Объект класса CRect содержит переменные для задания левого верхнего и правого нижнего углов прямоугольника. При создании объекта класса CRect необходимо убедиться в том, что задаваемые координаты прямоугольника нормализованы, то есть координата left меньше координаты right, а координата top меньше координаты bottom. Например, координаты левого верхнего угла (10,10) и координаты правого нижнего угла (20,20) задают нормализованный прямоугольник, а координаты левого верхнего угла (20,20) и координаты правого нижнего угла (10,10) задают ненормализованный прямоугольник. Если прямоугольник не нормализован, то многие функции класса CRect могут возвращать неправильные результаты. Список этих функций приведен при описании функции NormalizeRect. Перед вызовом данных функций необходимо вызвать функцию NormalizeRect, нормализующую объект своего класса. При использовании объектов класса CRect в функциях CDC::DPtoLP и CDC::LPtoDP следует соблюдать осторожность. Если используемый режим отображения предполагает использование отрицательных вертикальных координат, как это имеет место в режиме отображения MM_LOENGLISH, то функция CDC::DPtoLP преобразует объект класса CRect таким образом, что его координата top будет иметь большее значение, чем координата bottom. Это приведет к тому, что функции Height и Size будут возвращать отрицательные значения высоты преобразованного объект класса CRect и данный прямоугольник станет ненормализованным. При перегрузке операторов класса CRect первым операндом должен быть объект класса CRect, а вторым - объект структуры RECT или объект класса CRect. Описание данного класса содержится в файле заголовка afxwin.h.