Procedura: elaborare eventi di Windows Form da classi C++ native
Aggiornamento: novembre 2007
È 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 operazione effettuata sui controlli.
A tal fine, è necessario:
Collegare un gestore eventi OnClick al controllo utilizzando MAKE_DELEGATE.
Creare una mappa di delegati utilizzando BEGIN_DELEGATE_MAP, END_DELEGATE_MAP e EVENT_DELEGATE_ENTRY.
Esempio
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.
Aggiungere la prima riga di codice all'implementazione di BOOL CMFC01Dlg::OnInitDialog.
Aggiungere la definizione di OnClick e della mappa di delegati alla sezione pubblica nella dichiarazione della classe CMFC01Dlg : public CDialog.
m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
// 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 ) {}