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.

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