ActiveX с нуля


События.


События посылаются контрольными элементами в контейнер для того, чтобы оповестить о каких-то изменениях в нем. Эти события могут быть связаны с нажатием на клавиатуру, мышь или изменениями состояния элемента. Когда это случается, элемент уведомляет (Fire) контейнер.

MFC поддерживает два вида событий: базовые (stock) и пользовательские (custom). Базовые события реализованы в базовом классе COleControl автоматически. Пользовательские позволяют реализовать сообщения в контейнер, специфические для данного контрольного элемента. Для правильной передачи сообщений в контейнер Ваш элемент должен реализовать обработку каждого события как функцию-член, которая вызывается, когда событие происходит. Делается это с помощью карты событий ( event map ). Тогда Class Wizard может легко манипулировать событиями. Карта событий объявляется в .H файле класса элемента:

            DECLARE_EVENT_MAP()

После объявления карты событий она должна быть определена в .CPP файле:

BEGIN_EVENT_MAP(CMyCtrlCtrl, COleControl)

            //{{AFX_EVENT_MAP(CMyCtrlCtrl)

            //}}AFX_EVENT_MAP

END_EVENT_MAP()

При использовании Control Wizard эти строки добавляются автоматически. Для добавления событий используется ClassWizard. При этом весь необходимый код добавляется и в карту и в файл .ODL.




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



Книжный магазин