Sdílet prostřednictvím


Postupy: Zpracování událostí modelu Windows Forms z nativních tříd jazyka C++

Můžete umožnit nativním třídám C++ přijímat zpětná volání ze spravovaných událostí z ovládacích prvků modelu Windows Forms nebo jiných formulářů s formátem mapy maker MFC.Zpracování událostí ve zobrazeních a dialogových oknech se podobá provedení stejné úlohy pro ovládací prvky.

Abyste tak učinili, potřebujete:

Tato ukázka pokračuje v práci, kterou jste provedli v Postupy: Vytvoření datové vazby DDX/DDV s modelem Windows Forms.

Nyní přiřadíte váš ovládací prvek MFC (m_MyControl) se spravovaným delegátem obslužné rutiny události nazvané OnClick pro spravovanou událost Click.

Pro přiřazení obslužné rutiny události OnClick:

  1. Přidejte následující kód do implementace BOOL CMFC01Dlg::OnInitDialog:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Přidejte následující kód do veřejného oddílu v deklaraci třídy 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. Nakonec přidejte implementaci pro OnClick do CMFC01Dlg.cpp:

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

Viz také

Referenční dokumentace

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY