Базовые события отличаются от пользовательских тем, что они автоматически посылаются классом 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.