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