zabika.ru   1 ... 5 6 7 8

Object Windows Library.Базовая структура OWL
Библиотека Object Windows Library (OWL), включенная в пакет Borland C++ является библиотекой С++ и позволяет сократить время и усилия, требуемые для разработки программ под Windows.

OWL содержит группы классов, каждая из которых направлена на определенный аспект программирования под Windows. Структура OWL использует множественные наследования, что позволяет классам инкапсулировать комбинации необходимых им возможностей.

Управление событиями: класс TEventHandler

Программист мало работает с этим классом напрямую. Функции, которые он представляет, доступны во многих других программных группах, благодаря механизму наследования в С++. Этот класс управляет сообщениями, с которыми взаимодействуют программы. Сообщения имеют вид постоянных потоков.

Потоковые и устойчивые объекты: класс TStreamableBase.

Этот класс, фактически, является частью обычной библиотеки классов, а не классом OWL. Он позволяет рассматривать некий класс в качестве потока и сохранять его в памяти или на диске для дальнейшего использования во время, в том числе и последующих выполнений программы. Это является экзотичным для небольших программ, но имеет большое значение для более сложных приложений.

Управление модулями: классы TModule, TApplication.

TModule, Tapplication - относятся к группе управления модулями. TModule отвечает за загрузку и за выгрузку библиотек DLL, в то время, как TApplication ответственен за инициализацию программы, управление ею в период выполнения и управление задачами, которые необходимы при завершении выполнения программ.

Управление окнами: класс TWindow.

Этот класс является базовым оконным классом и наследует свойства классов TEventHandler и TStreamableBase. Существуют различные типы окон, построенные на этом классе TWindow.

TFrameWindow - простое окно с рамкой и меню.

TDecoratedFrame - расширяет возможности по использованию интерфейсных элементов: строки состояния и панели инструментов.


TMDIFrame, TMDIChild, TDecoratedMDIFrame - являются классами многодокументного интерфейса (MDI) и используются для представления множественных окон в рамках одного приложения.

Другие функциональные группы предусмотрены для графики, диалоговых окон, печати и управления меню и обработки ошибок.

Пример программы с использованием OWL.

______________________________________________________________

#include

#include
class MainApp : public TApplication

{

public :

MainApp ( ) : TApplication ( ) { }

void InitMainWindow ( ) ; // переопределяет функцию класса TApplication

};
void MainApp :: InitMainWindow ( )

{

SetMainWindow (new TFrameWindow (0,”First OWL Program”));

}
int OwlMain (int, char **)

{

return MainApp ( ).Run ( );

}

Программа отображает простейшее окно Windows с заголовком «First OWL Program». Для ее завершения необходимо нажать Alt-F4 или открыть системное меню и выбрать Close.

Эта программа содержит два элемента: класс для управления окном и класс для управления приложениями.

Класс MainApp является производным от TApplication, класса, который обеспечивает инициализацию приложения, непрерывное управление сообщениями и необходимые действия при завершении приложения. TApplicaton содержит виртуальную функцию IntMainWindow. В MainApp осуществляется перегрузка этой функции. Внутри этой функции делается вызов и устанавливается главное окно приложения со своим заголовком.

OwlMain вызывает функцию Run, и обработка по умолчанию в рамках OWL делает все остальное. (Run- это функция класса TApplication).

Механизм действия этой программы скрыт в построении классов. MainApp вызывает конструктор для TApplication внутри своего собственного конструктора. Это инициирует обработку по умолчанию для всех функций поддержки, кроме функции InitMainWindow, которая была перегружена посредством объявления функции-члена под тем же именем.


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

Два включенных в программу заголовочных файла предназначены для классов TFrameWindow (framewin.h) и TApplication (applicat.h). Программа для Windows должна иметь файл с расширением .DЕF, чтобы сообщить компоновщику, что делать с сегментами памяти и стеком. Borland C++ предоставляет такой файл \BC5\LIB|DEFAULT.DEF , который и был использован этой программой. Его следует добавить к списку файлов вашего проекта. Как правило, для небольших проектов не требуется изменение установок файла .DEF и файл, предоставляемый BorlandC++ можно использовать по умолчанию.

СОДЕРЖАНИЕ








<< предыдущая страница