|
Программирование >> Программирование на языке c++
Структура прикладной программы, использующей Object Windows картинкой, в окне статуса отображается строка, которая кратко поясняет суть возможных действий. Конструктор класса TDecoratedFrame описывается следующим образом: TDecoratedFrame(TWindow *parent, const char far *title, TWindow *clientWnd, BOOL trackJVIenuSeiectlon = FALSE, TJVIoduie *module = 0); Здесь добавлен только один параметр (trackMenuSelection), который еще не рассматривался. Этот параметр задает отслеживание команд меню (если задано значение TRUE). В этом случае осуществляется попытка добавления строки во фрейм статуса. Фреймы, поддерживающие работу со многими документами, позволяют автоматически создать много окон, связанных с одной прикладной программой. Работа с картинками поддерживается объектами типа TGadgetWindow. Картинки подобны небольшим иконкам; Они могут быть использованы для различных целей управления (примерно так же, как и обычные кнопки, отображаемые на экране дисплея). 9.4. Структура прикладной программы, использующей ObjectWindows Рассмотрим некоторую базовую структуру прикладной программы, которую позже будем совершенствовать и развивать (рис. 9.22). В приведенной структуре задано 6 фрагментов. Рассмотрим каждый из этих фрагментов более подробно. Фрагмент 1. Каждый класс, включенный в библиотеку ObjectWindows, имеет соответствующий файл заголовка. Если в программе используются некоторые классы, то все файлы заголовков для этих классов должны быть включены в программу. Фрагмент 2. Большинство прикладных программ содержит различные средства графического управления для взаимодействия с пользователем. Каждое такое средство (например, кнопка) имеет уникальный идентификатор. При нажатии Фрагмент программы Примеры Включение всех исо6хо;в1мых файлов заголовка #include <owl\applicat.h> #iiiclude <owl\rramewin.h> #include <owl\applica.h> Включение описаний (И.1П файла с описаниями) идем 1ифнкаторов #include mY h.h Нсобя-- зательно Объявление произвоЛ1Юго класса or класса TApplication. Пс-1)еопредслсние функции Inil Main Window Объявление и описание таблицы откликов и новых или переопределенных функций class my app : public TApplication public: niy app() : TApplicationO {} void Init Main WindowQ; Необя- зательно Объявление производного класса от класса, поддерживающего работу с окнами Объявление и описание , таблрщы откликов и новых или переопределенных функций Переопределение функщш Init Main window class my win : public TWindow { void my app;: InitMainWindowO { SetMain Window (new TFrameWindow(... Описание главной функщш программы с именем OwlMain mt OwlMain (int.char**) { return my appO.RunO; } Рис. 9.22. Базовая структура прикладной программы кнопки сообщение, заданное номером идентификатора, будет послано системе WINDOWS и далее прикладной программе. В действительности идентификатор - это некоторая определенная заранее константа. Если необходимо реагировать на сообщения, то описания всех констант должны быть включены в программу. Целесообразно хранить все описания в специальном файле типа .h. Этот файл включается в прикладную программу во фрагменте 2. Фрагмент 3. Базовая задача объекта ту арр - это выполнение некоторых действий по инициализации главного окна. Эти действия уже обсуждались ранее. В большинстве практических приложений целесообразно переопределить функцию TApplication::InitMainWindow, чтобы ввести различные функции, которые будут обслуживать главное окно в соответствии с требованиями конкретной прикладной задачи. Так можно ввести средства управления, добавить различные окна, изменить иконки и т. п. Фрагмент 4. Этот фрагмент объявляет класс, который будет обслуживать рабочую область. Таким классом должен быть: TWindow или его потомок; TDialog или его потомок. Новый класс обычно содержит: > переопределенную версию конструктора. Здесь можно присвоить начальные значения компонентам-данным, выделить память для новых данных и т. п.; > переопределенную версию деструктора, который обычно освобождает динамически выделенную в конструкторе память; > новые компоненты-данные (обычно с атрибутом protected); > новые или переопределенные компоненты-функции (обычно с атрибутом protected); > переопределенную функцию CanClose; > объявление функций откликов; > объявление таблицы откликов. Фрагмент 5. При переопределении функции InitMainWindow мы хотим специализировать главное окно, приспособив его наилучшим образом для конкретной задачи. Для этих целей можно добавить функции, выполняющие следующие действия:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |