Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
Vous pouvez permettre aux classes C++ natives de recevoir des rappels d'événements managés déclenchés à partir de contrôles Windows Forms ou d'autres formulaires avec le format de mappage de macro MFC. La réception des événements dans les vues et les dialogues est similaire à l'exécution de la même tâche pour les contrôles.
Pour cela, vous devez :
Joignez un gestionnaire d'événements OnClick au contrôle à l'aide de MAKE_DELEGATE.
Créez un mappage de délégué à l'aide de BEGIN_DELEGATE_MAP, END_DELEGATE_MAP et EVENT_DELEGATE_ENTRY.
Exemple
Cet exemple continue les tâches que vous avez effectuées dans Comment : établir la liaison des données DDX/DDV avec Windows Forms.
Vous allez maintenant associer votre contrôle MFC (m_MyControl) à un délégué de gestionnaires d'événements managé appelé OnClick pour l'événement Click managé.
Ajoutez la première ligne de code à l'implémentation de BOOL CMFC01Dlg::OnInitDialog.
Ajoutez le mappage de délégué et la définition OnClick à la section publique de la déclaration de classe CMFC01Dlg : CDialog publique.
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 ) {}