C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 7. Добавляем событие для элемента ActiveX / Библиотека ATL / Visual C++

Visual C++. ATL
Урок 7. Добавляем событие для элемента ActiveX

В этом уроке мы с вами посмотрим, как можно добавить событие к нашему элементу ActiveX.

Для добавления событий используется отдельный интерфейс. У нас он назван _IFirstATLEvents (у вас он может иметь и другое имя - в зависимости от того, как вы назвали ваш ActiveX. Но в любом случае его имя должно оканчиваться на *Events). Щелкните на нем правой кнопкой мыши и в контекстном меню выберите Add Method:

Добавление события

В появившемся диалоговом окне Add Method to Interface установите Return Type как void и Method Name в Three:

Добавление события

Нажмите на OK для закрытия диалогового окна. Наше новое событие добавится в интерфейс _IFirstATLEvents:

Новое события

Теперь нам надо это событие откуда-то возбуждать (fire по-английски). Последовательность действий здесь следующая - сначала мы должны откомпилировать наш ActiveX (это важно, так как нам понадобится один из файлов, получаемых в результате компиляции!). Для этого нажимаем на F7 или на кнопку:

Кнопка компиляции

Ошибок быть не должно. Если они все же есть, то исправьте их. После компиляции щелкаем на классе правой кнопкой мыши и выбираем в контекстном меню Implement Connection Point (это те самые точки соединения, которые мы сделали в уроке 3):

Добаление вызова события

В появившемся окне Implement Connection Point ставим галочку у интерфейса _IFirstATLEvents:

Окно Implement Connection Point

Нажимаем OK для закрытия диалогового окна. Обратите внимание, что на вкладке ClassView появился новый класс CProxy_IFirstATLEvents, а внутри его - метод Fire_Three:

Класс CProxy_IFirstATLEvents

Этот класс является представителем (Proxy) для нашего класса CFirstATL.

Теперь изменим метод inc класса CFirstATL так, чтобы событие Three возникало тогда, когда значение свойства num станет равным 3:

STDMETHODIMP CFirstATL::inc()
{
    // TODO: Add your implementation code here
    m_num++;
    if(m_num==3)
        Fire_Three();
    return S_OK;
}

Все! Теперь у нашего элемента ActiveX есть событие.