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


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


стоит, грубо говоря, из двух частей: объявлении прикладных классов, входящих в программу, и описании функций-членов этих классов, которые часто называют реализацией класса. Объявления классов, где по­сле ключевого слова class перечисляются входящие в класс данные-члены с указанием их типов и функ­ции-члены с указанием их сигнатур, располагаются в начале программы или, еще чаще, выносятся в за­головочный файл. Сама же программа, т.е. файл с расширением .срр, включает тексты функций-членов использованных в программе классов, а так же, разумеется, текст главной функции OwlMain(). Такой по­рядок диктуется правилами языка, требующими сначала объявить объект (например, прототип функ­ции), и лишь затем его описывать (тело функции). Однако при словесном описании деталей программы часто требуется, рассказав, например, о составе того или иного класса, тут же привести хотя бы первона­чальные сведения о его реализации. В результате при изложении назначения и взаимодействия отдель­ных элементов программы приходится постоянно перепрыгивать от одного места программы к другому, что затрудняет поиск в тексте программе описываемых участков, но, видимо, неизбежно.

Вернемся, однако, к тексту примера. Программа начинается с описания массива карточек типа TSB, в которых будет храниться введенная с клавиатуры база данных. Для простоты этот массив имеет фикси­рованную длину. Объявление массива карточек глобальным позволяет обращаться к нему из разных классов программы.

Для обработки сообщений от первых трех пунктов главного меню в таблицу откликов класса главно­го окна MyWindow включены три предложения EV_COMMAND, а в класс главного окна - объявления трех функций отклика CmInput(), CmOpen() и CmSave. Пункт "Выход", которому назначен стандартный идентификатор СМ_ЕХIТ, обрабатывается системой, и для него функция отклика не нужна. Действия, выполняемые функциями отклика, а также назначение функции Paint() главного окна будут описаны позже.

Поскольку класс, описывающий поведение диалогового окна, должен в данном случае иметь специ­фическую таблицу откликов, отвечающую составу органов управления диалогом, он должен быть не классом OWL, а прикладным классом, производным от класса TDialog. В состав членов этого класса, на­званного в программе MyDialog, включены вспомогательная переменная index, структурная переменная tsb типа TSB, которая будет использована для обмена данными с диалогом, конструктор, таблица откли­ков и функция обработки сообщений от кнопки "Добавить" CmAdd(). Объявление таблицы откликов для класса диалога выполняется так же, как и для класса главного окна, за исключением того, что в качестве параметра макроса DECLARE_RESPONSE_TABLE указывается имя соответствующего класса, в данном случае имя MyDialog.




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