Udostępnij za pośrednictwem


Porady: wychwytywanie zdarzeń interfejsu Windows Forms z klas natywnych języka C++

Można włączyć natywne klasy języka C++, aby odbierać wywołania zwrotne z zdarzeń zarządzanych wywoływanych z kontrolek windows Forms lub innych formularzy z formatem mapy makr MFC. Ujście zdarzeń w widokach i oknach dialogowych jest podobne do wykonywania tego samego zadania dla kontrolek.

W tym celu należy:

Ten przykład kontynuuje pracę wykonaną w temacie Instrukcje: Do DDX/Przeglądarka danych diagnostycznych powiązanie danych za pomocą formularzy systemu Windows.

Teraz skojarzysz kontrolkę MFC (m_MyControl) z pełnomocnikiem zarządzanego programu obsługi zdarzeń wywoływanym OnClick dla zdarzenia zarządzanego Click .

Aby dołączyć procedurę obsługi zdarzeń OnClick:

  1. Dodaj następujący kod do implementacji pliku BOOL CMFC01Dlg::OnInitDialog:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Dodaj następujący kod do sekcji publicznej w deklaracji klasy 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. Na koniec dodaj implementację polecenia OnClick do pliku CMFC01Dlg.cpp:

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

Zobacz też

MAKE_DELEGATE
BEGIN_DELEGATE_MAP
END_DELEGATE_MAP
EVENT_DELEGATE_ENTRY