Программирование >>  Программирование на языке c++ 

1 ... 122 123 124 [ 125 ] 126 127 128 ... 159


Структура прикладной программы, использующей 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 мы хотим специализировать главное окно, приспособив его наилучшим образом для конкретной задачи. Для этих целей можно добавить функции, выполняющие следующие действия:



1 ... 122 123 124 [ 125 ] 126 127 128 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика