Практическое руководство. Получение событий Windows Forms из собственных классов C++
Обновлен: Ноябрь 2007
Можно активировать собственные классы C++ для получения обратного вызова из управляемых событий, зафиксированных в элементе управления Windows Forms или других формах с форматированием сопоставления макроса в библиотеке MFC. Получение событий в представлениях и диалоговых окнах аналогично выполнению задачи в элементах управления.
Чтобы выполнить это, придерживайтесь следующих инструкций.
Присоедините обработчик событий OnClick к элементу управления с помощью MAKE_DELEGATE.
Создайте сопоставление делегатов с помощью BEGIN_DELEGATE_MAP, END_DELEGATE_MAP и EVENT_DELEGATE_ENTRY.
Пример
Созданный пример продолжает работу, начатую примером в разделе Практическое руководство. Привязка данных DDX/DDV к элементам управления Windows Forms.
Теперь сопоставьте элемент управления библиотеки MFC (m_MyControl) с управляемым делегатом обработчика событий OnClick для управляемого события Click.
Добавьте первую строку кода в реализацию "BOOL CMFC01Dlg::OnInitDialog".
Добавьте сопоставление делегатов и определение OnClick в общий раздел объявления класса CMFC01Dlg : общий CDialog.
m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
// delegate map
BEGIN_DELEGATE_MAP( CMFC01Dlg )
EVENT_DELEGATE_ENTRY( OnClick, System::Object^, System::EventArgs^ )
END_DELEGATE_MAP()
void OnClick( System::Object^ sender, System::EventArgs^ e ) {}