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


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


•   Саму таблицу откликов (макросы DEFINE_RESPONSE_TABLE1 и END_RESPONSE_TABLE, a

также помещаемые между ними макросы, определяющие конкретные сообщения)

•   Набор функций, обрабатывающих по заданным алгоритмам описанные в таблице откликов сооб­

щения Windows

Таблица откликов объявляется, как элемент класса главного окна с помощью макроса

DECLARE_RESPONSE_TABLE, с именем нашего конкретного класса в качестве параметра. При расши­

рении этого макроса в класс главного окна включается объявление указателя__ entries[] на массив струк­

турных пакетов данных, используемых для вызова конкретных функций отклика, а также прототип слу­

жебной функции Find(), с помощью которой осуществляется нахождение в таблице откликов элемента,

соответствующего пришедшему сообщению. Расширение указанного макроса содержится в заголовоч­

ном файле include\owl\eventhan.h, который наряду со многими другими файлами .h автоматически под­

ключается к компилируемому файлу приложения при выполнении директивы #include framewin.h. По­

скольку в расширении макроса присутствуют "собственные" спецификаторы доступа (private и public),

его можно располагать в любой секции класса, однако после этого макроса необходимо соответствую-


246                                                                                                                                  Глава 27

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

Таблица откликов может располагаться в любом месте программы. Она начинается с макроса DEFINE_RESPONSE_TABLE1 (описанного в том же файле eventhan.h), в качестве параметров которого указываются имена класса главного окна и родительского класса TFrameWindow. При расширении этого макроса в текст программы включается описание объявленной ранее функции Find(), а также строка, на­чинающая описание массива структурных пакетов данных для конкретных сообщений:




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