Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 20


dc.Rectangle(border); //Рисуем рамку

где border - объект класса TRect. С таким же успехом можно было указать координаты прямоугольника в виде двух объектов класса TPoint

dc.Rectangle(X0Y0,XmYm);

или четырьмя целыми числами.

Имея объект класса TRect, можно с. помощью функций-членов этого класса выполнять различные операции над прямоугольником: извлекать его геометрические характеристики (площадь, высоту и ши­рину, координаты сторон и углов), перемещать его в заданную точку, увеличивать или уменьшать, опре­делять вхождение в него точки с заданными координатами и т.д. Например, использованные в программе функции BottomLeft() и TopLeft() возвращают координаты нижнего левого и верхнего левого углов рам­ки графика, а функция InflateBy() с отрицательными аргументами позволяет получить из прямоугольни­ка-рамки border прямоугольник graph меньшего размера, описывающий область собственно графика (см. секцию описания объектов классов в начале программы)

С помощью функций-членов класса TPoint можно найти расстояние данной точки от начала коорди­нат окна, а также переместить точку в другое место или определить координаты точки, отстоящей от данной на заданное смещение по осям. Именно последняя функция (носящая имя OffsetBy()) несколько раз используется в настоящем примере. Например, в паре предложений

dc.MoveTo(graph.TopLeft());                                              //Рисуем верхнюю

dc.LineTo(graph.TopLeft().OffsetBy(-margins,0));           //горизонтальную риску


234                                                                                                                                  Глава 26

текущая позиция для данного контекста устройства смещается функцией TopLeft() в левый верхний угол области графика graph, после чего функцией LineTo() проводится прямая линия до точки, координаты которой определяются следующим образом: сначала находится объект класса TPoint, описывающий ле­вый верхний угол области графика (graph.TopLeft()), а затем для него вызывается функция OffsetBy(), ко­торая возвращает точку, смещенную на margins влево по оси х. В результате рисуется верхняя горизон­тальная риска длиной margins.




Начало  Назад  Вперед