Четвертый BORLAND С++ и его окружение

       

Обработка событий в отображаемом элементе


Файл заголовка docview.h предусматривает ряд макрокоманд для

таблицы реакции, а также функции обработки и проверки типов. С

помощью NOTIFY_SIG и VN_DEFINE вы можете также определить собственные функции и события.

Имеется ряд предопределенных событий Doc/View. Каждое такое

событие имеет соответствующую макрокоманду таблицы реакции и сигнатуру функции-обработчика. Модель Dec/View не предусматривает

версий этих функций. Вы должны определить эти функции в своем

производном классе и задать соответствующие действия.

Макрокоманда Событие

EV_VN_VIEWOPENED Построение нового отображаемого элемента.
EV_VN_VIEWCLOSED Уничтожение нового отображаемого элемента.
EV_VN_DOCOPENED Открытие нового документа.
EV_VN_DOCCLOSED Закрытие нового документа.
EV_VN_COMMIT Изменения, внесенные в данные в отображаемом элементе должны быть зафиксированы в документе.
EV_VN_REVERT Изменения, внесенные в данные в отображаемом элементе должны быть отменены.
EV_VN_ISDIRTY Если изменения еще не зафиксированы в документе, следует возвратить True, иначе False.
EV_VN_ISWINDOWS Если параметр HWND совпадает с HWND окна отображаемого элемента, следует возвратить True.

Для генерации собственных событий отображаемых элементов и

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

и NOTIFY_SIG.

Во-первых, нужно определить имя события, которое вы хотите

обрабатывать. По соглашению оно должно начинаться с vn. Для задания сигнатуры функции обработки события используйте макрокоманду

NOTIFY_SIG, а для определения самой макрокоманды - VN_DEFINE. Эта

макрокоманда имеет три параметра: имя события, имя функции обработки события и размер параметра для функции обработки события.



Содержание раздела