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


Контейнеры элемент управления ActiveX: Обработка событий из элемента управления ActiveX

В этой статье описывается использовать окно свойства для задания обработчики событий для элементов управления ActiveX в контейнере элементов управления ActiveX.Обработчики событий используются для получения уведомлений (из элемента управления) надежная событий и выполнить определенные действия в ответ.Это уведомление называется «включение» событием.

ПримечаниеПримечание

Данная статья использует диалоговое окно-основанный контейнера Контейнер элементов управления ActiveX и внедренный элемент управления с именем проекта с именем Circ в качестве примеров в процедурах и коде.

С помощью кнопки событий в окне свойств можно создать сопоставление событий, которые могут возникнуть в приложение-контейнере элемент управления ActiveX.Эти сопоставления «сопоставлением приемника событий» создает и Visual C++ поддерживается при добавлении обработчиков событий в класс контейнера элемента управления.Каждый обработчик событий, связанный с записью сопоставления сопоставляет события, определенное событие в функцию-член контейнера обработчика событий.Эта функция обработчика событий вызывается, когда указанное событие о объектом элемента управления ActiveX.

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

Изменения обработчика событий в проект

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

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)


...


END_EVENTSINK_MAP()

При использовании окно свойств для добавления событий, запись сопоставления события (ON_EVENT) добавляется к сопоставлению приемника событий и обработчик событий функция добавлена к файлу реализации циклов (.CPP).

В следующем примере объявляется обработчик событий, OnClickInCircCtrl, для события ClickIn элемента управления Circ:

BEGIN_EVENTSINK_MAP(CContainerDlg, CDialog)
   ON_EVENT(CContainerDlg, IDC_CIRCCTRL1, 1 /* ClickIn */, OnClickInCircctrl1, 
      VTS_I4 VTS_I4)
END_EVENTSINK_MAP()

Кроме того, следующий шаблон добавляется к файлу реализации класса CContainerDlg (.CPP) для функции-члена обработчика событий:

BOOL CContainerDlg::OnClickInCircctrl1(OLE_XPOS_PIXELS nX, OLE_YPOS_PIXELS nY)
{
   // use nX and nY here
   TRACE(_T("nX = %d, nY = %d\n"), nX, nY);
   return TRUE;
}

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

Создание функция обработчика событий

  1. В представлении классов выберите класс диалогового окна, содержащего элемент управления ActiveX.В этом примере используется CContainerDlg.

  2. В окне "Свойства" нажмите кнопку События.

  3. В окне свойства выберите идентификатор элемента управления встроенного элемента управления ActiveX.В этом примере используется IDC_CIRCCTRL1.

    Окно свойства показывает список событий, которые могут быть предоставлены внедренный элемент управления ActiveX.Любой функции-члена отображаются полужирным шрифтом уже есть функции обработчика, присвоенные него.

  4. Выберите событие будет диалоговый класс обработки.Для этого примера выберите Щелчок.

  5. Из раскрывающегося списка справа выберите Добавить ClickCircctrl1.

  6. Дважды щелкните новая функция обработчика из представления классов для поскакать коду обработчика событий в файле реализации (.CPP) CContainerDlg.

См. также

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

Контейнеры элементов управления ActiveX