Comment : appeler des propriétés et des méthodes du contrôle Windows Forms
Dans la mesure où CWinFormsView::GetControl retourne un pointeur vers System.Windows.Forms.Control, et non un pointeur vers WindowsControlLibrary1::UserControl1, il est recommandé d'ajouter un membre du type de contrôle utilisateur et de l'initialiser dans IView::OnInitialUpdate.Vous pouvez maintenant appeler des méthodes et des propriétés à l'aide de m_ViewControl.
Cette rubrique part du principe que vous avez précédemment effectué les étapes Comment : créer le contrôle utilisateur et l'héberger dans une boîte de dialogue et Comment : créer le contrôle utilisateur et héberger l'affichage MDI.
Pour créer l'application MFC hôte
Ouvrez l'application MFC que vous avez créée dans Comment : créer le contrôle utilisateur et héberger l'affichage MDI.
Ajoutez la ligne suivante à la section des substitutions publique de la déclaration de classe CMFC02View dans MFC02View.h.
gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;
Ajoutez une substitution pour OnInitialupdate.
Affichez la fenêtre Propriétés (F4).Dans Affichage de classes (CTRL+MAJ+C), sélectionnez la classe CMFC02View.Dans la fenêtre Propriétés, sélectionnez l'icône associée à Substitutions.Faites défiler la liste vers le bas jusqu'à OnInitialUpdate.Cliquez sur la liste déroulante et sélectionnez <Ajouter>.Dans MFC02View.cpp,assurez-vous que le corps de la fonction OnInitialUpdate se présente comme suit :
CWinFormsView::OnInitialUpdate(); m_ViewControl = safe_cast<WindowsFormsControlLibrary1::UserControl1 ^>(this->GetControl()); m_ViewControl->textBox1->Text = gcnew System::String("hi");
Générez et exécutez le projet.
Dans le menu Générer, cliquez sur Générer la solution.
Dans le menu Déboguer, cliquez sur Exécuter sans débogage.
Notez que la zone de texte est maintenant initialisée.
Voir aussi
Autres ressources
Hébergement d'un contrôle utilisateur Windows Forms en tant que vue MFC