ActiveX с нуля

         

Добавление базовых событий в контрольный элемент.


Базовые события отличаются от пользовательских тем, что они автоматически посылаются классом COleControl. COleControl содержит методы, которые посылают события из элемента. Этих событий 9. Они перечислены в таблице 2.

Таблица 2. Базовые события, поддерживаемые в COleControl

Событие

Функция, посылающая событие в контейнер

Примечания

Click

void FireClick( )

Посылается в контейнер, когда контрольный элемент владеет мышью и на ней выполняется щелчок любой кнопкой и кнопка отпускается. Базовые события MouseDown и MouseUp (см. ниже) случаются перед этим событием. Вход в карте событий - EVENT_STOCK_CLICK( )



DblClick

void FireDblClick( )

Посылается, когда  BUTTONDBLCLK

сообщение принимается.

Вход в карте событий -  EVENT_STOCK_DBLCLICK( )

Error

void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 )

Посылается в контейнер, когда ошибка произошла вне методов вызова и доступа к свойствам.

Вход в карте событий - EVENT_STOCK_ERROREVENT( )

KeyDown

void FireKeyDown( short nChar, short nShiftState )

Посылается в контейнер, когда WM_SYSKEYDOWN или WM_KEYDOWN сообщения принимает контрольный элемент.

Вход в карте событий - EVENT_STOCK_KEYDOWN( )

KeyPress

void FireKeyPress( short* pnChar

)

Посылается в контейнер, когда WM_CHAR сообщений получено.

Вход в карте событий - EVENT_STOCK_KEYPRESS( )

KeyUp

void FireKeyUp( short nChar, short nShiftState )

Посылается, когда  WM_SYSKEYUP

или WM_KEYUP сообщения получены.

Вход в карте событий -  EVENT_STOCK_KEYUP( )

MouseDown

void FireMouseDown( short nButton, short nShiftState, float x, float y )

Полылается, когда BUTTONDOWN

(левая, средняя, или правая) событие получается. Вход в карте событий -  EVENT_STOCK_MOUSEDOWN( )

MouseMove

void FireMouseMove( short nButton, short nShiftState, float x, float y )

Посылается, когда WM_MOUSEMOVE

событие получено элементом.

Вход в карте событий - EVENT_STOCK_MOUSEMOVE( )

MouseUp

void FireMouseUp( short nButton, short nShiftState, float x, float y )

Посылается в контейнер, когда  BUTTONUP событие, связанное с любой кнопкой мыши, получено. Вход в карте событий -  EVENT_STOCK_MOUSEUP( )

ReadyStateChange

void FireReadyStateChange( )

Посылается, когда контрольный элемент переходит в новое состояние при получении данных. Вход в карте событий - EVENT_STOCK_READYSTATECHANGE( )

Добавление базовых событий к контрольному элементу проще, чем пользовательских, так как посылка события в контейнер уже реализована в базовом классе COleControl. Для того, чтобы добавить к контрольному элементу, созданному с помощью СontrolWizard, событие, например, KeyPress, надо выполнить следующие действия с помощью Class Wizard:

1.

Загрузить проект.

2.      В меню View выбрать Class Wizard.

3.      Щелкнуть на вкладке ActiveX Events.

4.      Выбрать имя Вашего контрольного элемента в списке Class Name.

5.      Щелкнуть на кнопке Add Event.

6.      В списке External Name выбрать KeyPress или другое из встроенных событий.

7.      Нажать  кнопку OK.

8.      Нажать кнопку OK для завершения работы с Class Wizard.



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