Partager via


WinFormIntegration, exemple : illustre l'hébergement d'un contrôle utilisateur WinForms dans une application MFC

Mise à jour : novembre 2007

Cet exemple explique comment héberger un contrôle utilisateur WinForms sous forme de boîte de dialogue ou d'affichage dans une application MFC.

L'exemple est composé de trois DLL d'extension MFC, de deux contrôles utilisateur WinForms et d'une application MDI MFC principale :

EXTDLL1 - Utilise CWinFormsView pour héberger le contrôle utilisateur WinFormUserControlView1 sous forme de fenêtre CView dans l'application MDI MFC. Utilise également le routage de commandes pour envoyer des messages au contrôle utilisateur WinForms.

EXTDLL2 - Indique comment héberger un contrôle utilisateur WinForms sous forme de contrôle statique dans une fenêtre CView existante.

EXTDLL3 - Encapsule les différents modes d'hébergement d'un contrôle utilisateur WinForms dans une boîte de dialogue MFC, y compris l'utilisation de CDialog et CWinFormsDialog.

WinFormUserControl1 - Contrôle utilisateur WinForms simple avec quelques contrôles communs ajoutés.

WinFormUserControlView1 - Contrôle utilisateur WinForms qui implémente les interfaces Microsoft::VisualC::MFC::IView et Microsoft::VisualC::MFC::ICommandTarget pour participer au routage de commandes MFC et afficher les notifications. Il s'agit d'un éditeur de texte de base (avec un contrôle TextBox .NET multiligne) qui utilise MFC pour enregistrer et ouvrir des fichiers.

MFC04 - Application MDI MFC principale qui charge les DLL d'extension MFC, en les ajoutant sous forme de différents modèles de document MFC.

Pour obtenir des exemples et des instructions d'installation :

  • Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.

    Pour plus d'informations, consultez Recherche des fichiers d'exemple.

  • La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.

  • Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont stockés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont disponibles en ligne.

Pour générer et exécuter l'exemple :

  1. Pour générer les projets, ouvrez simplement MFC04.sln et sélectionnez Générer la solution dans le menu Générer.

  2. Pour exécuter les différents scénarios, lancez l'application et sélectionnez Nouveau dans le menu Fichier. Sélectionnez ensuite le modèle CView, CFormView ou Dialogs :

    1. Le modèle CView ouvre CWinFormsView avec une zone d'édition multiligne .NET que vous pouvez modifier. Vous avez également la possibilité d'enregistrer ce texte dans un fichier et de le charger à nouveau via les éléments de menu Enregistrer et Ouvrir de MFC. Vous pouvez appeler la fonctionnalité Enregistrer à partir du WinForms en sélectionnant le bouton déroulant Enregistrer les modifications dans le WinForms StatusStrip. La sélection de l'élément de menu CViewCmds->Command1 de MFC met à jour le texte dans StatusStrip, illustrant ainsi le routage de commandes MFC vers le contrôle utilisateur WinForms hébergé.

    2. Le modèle CFormView est le même contrôle utilisateur WinForms que celui mentionné ci-dessus, sauf qu'il est hébergé dans une ressource CFormView. Ce modèle illustre seulement le code d'hébergement ; les fonctionnalités Enregistrer et Ouvrir ne sont pas implémentées.

    3. Le modèle Dialogs est une vue illustrant un contrôle utilisateur WinForms hébergé dans les scénarios suivants : dans un CDialog modal appelé, dans un CDialog non modal appelé, sous la forme d'un CWinFormsDialog modal appelé et sous la forme d'un CWinFormsDialog non modal appelé. Les exemples CWinFormsDialog illustrent le raccordement des fonctions MFC aux événements de contrôle WinForms. Ils illustrent également le passage de chaînes de managé à natif via les opérateurs de conversion CString à System::String^.

Configuration requise

Systèmes d'exploitation pris en charge : Windows Server 2003, Windows XP

Voir aussi

Référence

Exemples de WinForms MFC