ActiveX с нуля

Добавление событий.


Элемент будет обрабатывать сообщения от мыши.

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

События добавляются к элементу управления с помощью ClassWizard.


Чтобы добавить событие Select:

1.

Щелкните на вкладке ActiveX Events в диалоге ClassWizard (рис. 10).

2.      Щелкните на кнопке Add Event (рис. 11).

3.     



Введите в поле External name имя свойства Select. При этом мастер устанавливает внутреннее имя (имя функции, вызывающей запуск события) FireSelect. Событие должно иметь параметр. Укажем его в списке Parameter list: это IsSelected типа BOOL.

Щелкните кноку OK.

4.      Добавьте обработчик сообщения WM_LBUTTONDOWN, из которого будет запускаться событие. Для этого выберите вкладку Message Map(рис. 12).

В списке Messages выберите событие WM_LBUTTONDOWN и нажмите кнопку Add Function.

5.      Внесите изменения в функцию OnLButtonDown:

void CMyCtrlCtrl::OnLButtonDown(UINT nFlags, CPoint point)

{

     COleControl::OnLButtonDown(nFlags, point);

     m_bSelected = !m_bSelected;

    

InvalidateControl();

     FireSelect(m_bSelected);

}



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