Procedura: elaborare eventi di Windows Form da classi C++ native

È possibile attivare classi C++ native in modo da ricevere callback da eventi gestiti generati da controlli Windows Form o da altri form in formato mappa macro MFC.L'elaborazione di eventi in visualizzazioni e finestre di dialogo è simile alla stessa attività effettuata sui controlli.

A tal fine, è necessario:

In questo esempio vengono proseguite le operazioni effettuate in Procedura: eseguire associazioni dati DDX/DDV con Windows Form.

A questo punto il controllo MFC verrà associato (m_MyControl) a un delegato del gestore eventi gestito denominato OnClick per l'evento gestito Click.

Per allegare il gestore eventi OnClick:

  1. Aggiungere la seguente riga di codice all'implementazione di BOOL CMFC01Dlg::OnInitDialog:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Aggiungere il seguente codice alla sezione pubblica nella dichiarazione di classe 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. Infine, aggiungere l'implementazione per OnClick a CMFC01Dlg.cpp:

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

Vedere anche

Riferimenti

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY