Элементы управления ActiveX MFC: Добавление стандартных событий к элементу управления ActiveX
События акций отличаются от пользовательских событий, в котором они автоматически предоставляются классом COleControl.COleControl содержит стандартные функции-члены, которые инициируют события, полученными в результате общих действий.Некоторые действия, на которые COleControl содержат один и дважды щелкните на элементе управления, событиях клавиатуры и изменениях в состоянии кнопки мыши.Записи сопоставления события для событий хранения всегда предшествуются префиксом EVENT_STOCK.
События акций, поддерживаемые мастером события добавление
Класс COleControl предоставляют 10 стандартных событий, перечисленных в следующей таблице.Можно определить события в элементе управления с помощью Мастер добавления событий.
События ticker
Событие |
Приостанавливается при срабатывании функция |
Комментарии |
---|---|---|
Щелчок |
пустое FireClick () |
О том, когда элемент управления перенаправляет мыши любое сообщение BUTTONUP (слева или справа), означают получено, а кнопка отпущена над элементом управления.Reserve события MouseDown и MouseUp происходит перед этим событием. Запись сопоставления события: EVENT_STOCK_CLICK( ) |
DblClick |
пустое FireDblClick () |
Аналогично на щелчок но о том, когда сообщение BUTTONDBLCLK получено. Запись сопоставления события: EVENT_STOCK_DBLCLICK( ) |
Ошибка |
scode, LPCSTR lpszDescription, UINT nHelpID = 0 )void FireError( SCODE |
Вызывается при возникновении ошибки в элемент управления ActiveX или вне области вызова метода доступа свойства. Запись сопоставления события: 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 xy ), float |
О если любое BUTTONDOWN (слева или справа), означают получено.Мышь захвачена непосредственно перед это событие активизируется. Запись сопоставления события: EVENT_STOCK_MOUSEDOWN( ) |
MouseMove |
void FireMouseMove( short nButton, short nShiftState, float xy ), float |
Если получено сообщение об WM_MOUSEMOVE. Запись сопоставления события: EVENT_STOCK_MOUSEMOVE( ) |
MouseUp |
void FireMouseUp( short nButton, short nShiftState, float xy ), float |
О если любое BUTTONUP (слева или справа), означают получено.Захват мыши будет освобожден, прежде чем это событие активизируется. Запись сопоставления события: EVENT_STOCK_MOUSEUP( ) |
ReadyStateChange |
пустое FireReadyStateChange () |
Происходит при переходе элемента управления к следующему вместо этого состояние из-за количества данных доступа. Запись сопоставления события: EVENT_STOCK_READYSTATECHANGE( ) |
Добавление события акций, используя мастер добавления события
Добавление события акций требуется меньше работы, чем добавление пользовательских событий, так как включение фактического события автоматически обрабатывается базовым классом, COleControl.Следующая процедура позволяет добавить событие акций на элемент управления, который был развит с помощью Мастер элементов ActiveX MFC.KeyPress, называемое событие срабатывает, когда клавиша нажата, и элемент управления активным.Эту процедуру можно также использовать для добавления других стандартных событий.Замените имя выбранного события KeyPress для хранения.
Чтобы добавить запасите события KeyPress, используя мастер добавления события
Загрузите проект элемента управления.
В представлении классов щелкните правой кнопкой мыши класс элемента управления ActiveX, чтобы открыть контекстное меню.
В контекстном меню выберите Добавить а затем нажмите кнопку Добавить событие.
Это открывает мастер добавления события.
В раскрывающемся списке Название события выберите KeyPress.
Нажмите кнопку Готово.
Добавьте изменения мастера событий для событий ticker
Поскольку события акций обрабатывается базовым классом элемента управления, мастер добавления события не изменяет свое объявление класса в любом случае.Добавляет событие в сопоставление события элемента управления и делает запись в файле IDL.Следующая линия добавляется к сопоставлению события элемента управления, расположенному в файле реализации класса элемента управления (.CPP):
EVENT_STOCK_KEYPRESS()
Добавление этот код вызывает событие KeyPress, если сообщение получено WM_CHAR и элемент управления является активным.События KeyPress можно создать в других случаях путем вызова его функцию включения (например, FireKeyPress) из кода элемента управления.
Мастер добавления события добавьте следующую строку кода в idl-файл элемента управления:
[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
Эта линия связывает события KeyPress со стандартным идентификатор руководителя и позволяет контейнеру предвидеть события KeyPress.