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


Практическое руководство. Получение событий Windows Forms из собственных классов C++

Можно активировать собственные классы C++ для получения обратного вызова из управляемых событий, зафиксированных в элементе управления Windows Forms или других формах с форматированием сопоставления макроса в библиотеке MFC. Получение событий в представлениях и диалоговых окнах аналогично выполнению задачи в элементах управления.

Чтобы выполнить это, придерживайтесь следующих инструкций.

Созданный пример продолжает работу, начатую примером в разделе Практическое руководство. Привязка данных DDX/DDV к элементам управления Windows Forms.

Теперь сопоставьте элемент управления библиотеки MFC (m_MyControl) с управляемым делегатом обработчика событий OnClick для управляемого события Click.

Подключение обработчика событий OnClick

  1. Добавьте следующий код в реализацию метода BOOL CMFC01Dlg::OnInitDialog:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Добавьте в раздел public объявления класса CMFC01Dlg: public CDialog следующий код.

    // 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 );
    
  3. Затем добавьте реализацию метода OnClick в файл CMFC01Dlg.cpp:

    void CMFC01Dlg::OnClick(System::Object^ sender, System::EventArgs^ e)
    {
        AfxMessageBox(_T("Button clicked"));
    }
    

См. также

Ссылки

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY