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


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


Сама таблица откликов содержит единственный макрос EV_COMMAND (с указанием функции от­клика CmAdd()), так как из всех составляющих диалогового окна мы будем напрямую обрабатывать


Диалоговые окна                                                                                                                 261

только сообщения от кнопки "Добавить". Сообщения от остальных элементов диалога (полей ввода и альтернативных кнопок) будут обрабатываться встроенными средствами OWL, описанными ниже.

При выборе пункта "Ввод данных" главного меню вызывается (через таблицу откликов класса Му-Window) функция CmInput(). В ней обнуляется массив карточек, после чего создается объект диалогово­го окна и для него вызывается функция Execute(). Пользователю предоставляется возможность заполнить карточки базы данных требуемым содержимым. После завершения работы с диалогом (нажатием кнопки "ОК") функция Execute() завершается, управление возвращается в функцию CmInput(), и с помощью вы­зова функции Invalidate() инициируется перерисовка главного окна, в которое выводится информация из всех заполненных карточек базы данных.

Рассмотрим теперь вопрос о взаимодействии с управляющими элементами диалога. В нашем приме­ре требуется извлекать данные из полей ввода диалогового окна (а также направлять в поля ввода дан­ные, если мы хотим заполнять эти поля не с клавиатуры, а программно) и получать информацию о нажа­тии альтернативных кнопок "М" и "Ж". Для реализации встроенных средств коммуникации с управляю­щими элементами диалога необходимо прежде всего определить специальную структуру - буфер обме­на, элементы которого соответствуют данным, поступающим от управляющих элементов. В нашем при­мере эта структура получила наименование TSB (от Transfer Buffer); в нее входят три символьные строки для приема данных из полей ввода и две булевы переменные для получения информации о состоянии альтернативных кнопок. Длина символьных строк, определенных в структуре TSB, задает максимальное число символов, которое можно будет ввести в соответствующую строку. При определении длины строк не следует забывать о завершающем символьную строку нуле; именно из-за него строка yearEdit. для приема года имеет длину не 4, а 5 байт.




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