Udostępnij za pośrednictwem


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

Można włączyć macierzystych klas języka C++ do odbierania wywołań zwrotnych od zarządzanych zdarzenia wywoływane z formantów Windows Forms lub innych form z formatu mapy makra MFC.Zatopienie zdarzeń w widokach i okien dialogowych jest podobna do robi to samo zadanie dla formantów.

Aby to zrobić, należy:

W tym przykładzie kontynuuje pracę, nie w Porady: wiązanie danych DDX/DDV za pomocą interfejsu Windows Forms.

Teraz zostanie skojarzony formant MFC (m_MyControl) z pełnomocnika program obsługi zdarzeń zarządzanych o nazwie OnClick dla zarządzanej Click zdarzenia.

Aby dołączyć program obsługi zdarzeń:

  1. Dodaj następujący kod do realizacji 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: CDialog publicznych.

    // 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 należy dodać wykonania na OnClick do CMFC01Dlg.cpp:

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

Zobacz też

Informacje

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY