Поделиться через


Элементы управления 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, используя мастер добавления события

  1. Загрузите проект элемента управления.

  2. В представлении классов щелкните правой кнопкой мыши класс элемента управления ActiveX, чтобы открыть контекстное меню.

  3. В контекстном меню выберите Добавить а затем нажмите кнопку Добавить событие.

    Это открывает мастер добавления события.

  4. В раскрывающемся списке Название события выберите KeyPress.

  5. Нажмите кнопку Готово.

Добавьте изменения мастера событий для событий ticker

Поскольку события акций обрабатывается базовым классом элемента управления, мастер добавления события не изменяет свое объявление класса в любом случае.Добавляет событие в сопоставление события элемента управления и делает запись в файле IDL.Следующая линия добавляется к сопоставлению события элемента управления, расположенному в файле реализации класса элемента управления (.CPP):

EVENT_STOCK_KEYPRESS()

Добавление этот код вызывает событие KeyPress, если сообщение получено WM_CHAR и элемент управления является активным.События KeyPress можно создать в других случаях путем вызова его функцию включения (например, FireKeyPress) из кода элемента управления.

Мастер добавления события добавьте следующую строку кода в idl-файл элемента управления:

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

Эта линия связывает события KeyPress со стандартным идентификатор руководителя и позволяет контейнеру предвидеть события KeyPress.

См. также

Ссылки

Класс COleControl

Основные понятия

Элементы управления ActiveX MFC

Элементы управления ActiveX MFC: методы