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


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


SetMainWindow(new MyWindow(0,"Программа  26-2"));

оператор new, выступающий в качестве аргумента функции SetMainWindow(), возвращает значение ука­зателя на создаваемый объект класса MyWindow, и все работает правильно, хотя этот указатель и не при­сутствует в программе в явном виде.


Обработка сообщения WM_PAINT u интерфейс GDI                                                233

Для упрощения разработки программы геометрические характеристики изображения записаны в ви­де символических констант (для целочисленных констант описатель int можно опускать), смысл которых показан на рис. 26.4.

Рис. 26.4. Обозначения точек, линий и прямоугольников для программы 26-2.

В программе 26-2, в частности, демонстрируется использование классов OWL 5.0, служащих для оп­ределения размеров и координат точек, линий и прямоугольных областей. Объекты этих классов сами по себе не производят никаких видимых эффектов, однако их удобно использовать в функциях GDI, тре­бующих задания геометрических характеристик. Класс TPoint задает координаты точки, класс TRect -координаты прямоугольника, а класс TSize включает в себя пару чисел int, которые можно использовать для задания каких-либо размеров или смещений. В настоящем примере с помощью объекта класса TSize описаны размеры квадрата, служащего для вывода на экран круглых точек.

Объекты классов положения и размеров описаны в примере 26-2 в начале программы, в области гло­бальных переменных. С таким же успехом их можно было описать непосредственно в функции Paint(), где только они и используются.

Функция Paint() в принципе выглядит точно так же, как и в традиционных программах и состоит из последовательности вызовов функций GDI, осуществляющих рисование элементов изображения - рам­ки, рисок, надписей, кружков и т.д. Все эти функции вызываются для объекта контекста устройства dc, созданного конструктором класса TPaintDC, как это было описано в предыдущем разделе. Использован­ные в программе функции (Rectangle(), MoveTo(), LineTo() и др.) являются инкапсулированными функ­циями API Windows и не нуждаются в пояснениях. В качестве аргументов этих функций можно указы­вать обычные координаты точек, как и в API Windows, однако использование объекты классов положе­ния и размеров предоставляет более широкие возможности. При этом функции GDI позволяют указывать геометрические характеристики рисуемых фигур в разных вариантах. Так, для рисования прямоугольной рамки в программе использован вызов




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