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

1 ... 146 147 148 [ 149 ] 150 151 152 ... 159


public:

ТМуАррО : TApplicationO {}

void InitMainWindowO

{ SetMainWindow(new TFrameWindow(0,

Graphics + Common Dialog Boxes , new TMyWindow)); GetMainWindowO -> AssignMenufCOMMANDS ); } }; int OwlMain(int, char*[]) { return TMyApp().Run(); }

Файл ресурса gr.rc программы может быть задан в таком виде:

#ifndef WORKSHOPJNVOKED #include <windows.h> #endif

#include <owl\inputdia.rc>

#include <owl\except.rc>

#define CM CLEAR 101

#define CM RECT 102

#define CM CIRCLE 103

#define CM POLYGON 104

#define CM NEW 105

#define CM OPEN 106

#define CM SAVE 107

#define CM SAVE AS 108

#ifdef RCJNVOKED

COMMANDS MENU

{ POPUP &Figure

{ MENUITEM &Clear , CM CLEAR MENUITEM &Rect , CM RECT MENUITEM &Circle , CM CIRCLE MENUITEM Polygon , CM POLYGON } POPUP &File

{ MENUITEM &New , CM NEW MENUITEM &Open , CM OPEN MENUITEM &Save , CM SAVE MENUITEM &Save as , CM SAVE AS } }

#endif

15 B. A. Скляров 449



9.6.10. Создание стандартных файлов помощи (Windows help)

Система WINDOWS позволяет создавать заказные (пользовательские) файлы помощи. Для этих целей необходимо выполнить следующие базовые шаги:

> подготовить содержимое файла помощи и сохранить его в формате RTF (Rich Text Format). Здесь можно использовать любой текстовый редактор, поддерживающий этот формат, например Word для WINDOWS;

> подготовить оглавление для файла помощи и сохранить его в формате RTF;

> подготовить текстовый файл проекта (файл *.HLP);

выполнить компиляцию файла помощи, в результате чего будет построен файл ресурса с именем *.HLP.

После этого можно получать необходимую помощь из прикладной программы, используя определенные ранее активные клавиши (дополнительную информацию по этим вопросам можно найти в файле Microsoft WINDOWS cwh.hlp).

9.6.11. Общие рекомендации по использованию системы ObjectWindows

Рассмотрим правила, которые являются общими для различных задач программирования [12]:

> используйте компоненты-функции с именем GetXXXXX, чтобы получить что-то. Например, можно использовать функцию GetMainWindow, чтобы получить указатель на главное окно, функцию GetClientWindow, чтобы получить указатель на рабочее окно, и т.п. В результате можно иметь доступ ко многим компонентам-функциям, которые принадлежат различным классам, через указатели, возвращаемые функциями GetXXXXX (здесь ХХХХХ - символы, задающие конкретную функцию);

> используйте компоненты-функции с именем SetXXXXX, чтобы установить что-то. Например, можно использовать функцию Setlcon, чтобы установить иконку из заданного ресурса;



используйте компонент-функцию с именем EvCommand, чтобы упростить обработку сообщений в макро WM COMMAND, когда необходимо выбрать пункт из набора ранее определенных пунктов;

используйте компоненты-функции с именем ЕпаЫеХХХХХ, чтобы включить что-то. Например, можно использовать функцию EnableKBHandler для включения ввода с клавиатуры;

используйте компоненты-функции с именем DisableXXXXX, чтобы выключить что-то. Например, можно использовать функцию DisableTransfer, чтобы выключить механизм передачи данных от средств контроля;

используйте компоненты-функции с именем SendXXXXX, чтобы послать что-то. Например, можно использовать функцию SendNotification, чтобы послать сообщение от окна-ребенка окну-родителю;

используйте компоненты-функции с именем LoadXXXXX, чтобы загрузить что-то в память. Например, можно использовать функцию Loadlcon, чтобы загрузить иконку;

аналогичные правила могут быть использованы и для других общих имен или имен с общими префиксами;

когда переопределяются некоторые компоненты-функции, в теле переопределенной функции часто вызывают соответствующую системную функцию (см. функцию EvLButtonDown во втором примере, § 9.5.5);

при разработке прикладных программ с использованием библиотеки ObjectWindows в первую очередь необходимо обращать внимание на следующие вопросы [12]: какие библиотечные классы необходимо использовать в программе и как их использовать; как построить иерархию классов для прикладной программы с привлечением механизмов простого и множественного наследования; как сконструировать объекты выбранных классов и как модифицировать (улучшить) их для конкретной программы; как декомпозировать (разделить) программу на части, которые можно конструировать независимо друг от друга, и как потом соединить эти части, чтобы получить законченный программный продукт.



1 ... 146 147 148 [ 149 ] 150 151 152 ... 159

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