Partager via


Comment : créer le contrôle utilisateur et héberger l'affichage MDI

Mise à jour : novembre 2007

Les procédures suivantes indiquent comment créer un contrôle utilisateur .NET Framework, comment le créer dans une bibliothèque de classes de contrôle (en particulier un projet de bibliothèque de contrôles Windows), puis compiler le projet dans un assembly. Vous consommerez ensuite le contrôle d'une application MFC qui utilise des classes dérivées de la CView Class et de la CWinFormsView Class.

Pour plus d'informations sur la création d'un contrôle utilisateur Windows Forms et la création d'une bibliothèque de classes de contrôle, voyez How to: Author User Controls.

Remarque :

Dans certains cas, les contrôles WinForms, comment des contrôles Grid tiers, peuvent ne pas se comporter de façon fiable au sein de l'application MFC qui les héberge. Une solution de contournement conseillée sera de placer un contrôle utilisateur Windows Forms dans l'application MFC et de placer le contrôle Grid tiers à l'intérieur du contrôle utilisateur.

Cette procédure suppose que vous avez créé un projet de bibliothèque de contrôles Windows Forms nommé WindowsControlLibrary1, selon la procédure exposée dans Comment : créer le contrôle utilisateur et l'héberger dans une boîte de dialogue.

Pour créer l'application MFC hôte

  1. Créez un nouveau projet d'application MFC.

    Dans le menu Fichier, sélectionnez New, puis cliquez sur Projet. Dans le dossier Visual C++, sélectionnez Application MFC.

    Dans la zone Nom, entrez MFC02 et modifiez le paramètre Solution en Ajouter à la solution.Cliquez sur OK.

    Dans l'Assistant Application MFC, acceptez toutes les valeurs par défaut, puis cliquez sur Terminer. Cela crée une application MFC avec une interface multidocument.

  2. Configurez le projet.

    Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet MFC02, puis sélectionnez Propriétés dans le menu contextuel. La boîte de dialogue Pages de propriétés s'affiche.

    Dans la boîte de dialogue Pages de propriétés, dans le contrôle d'arborescence Propriétés de configuration, sélectionnez Général puis, dans la section Paramètres par défaut du projet, affectez à Prise en charge du Common Language Runtime la valeur Common Language Runtime Support (/clr). Cliquez sur OK.

  3. Ajoutez une référence au contrôle .NET.

    Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet MFC02 et sélectionnez Références. Dans Pages de propriétés, cliquez sur Ajouter une nouvelle référence, sélectionnez WindowsControlLibrary1 (sous l'onglet Projets) et cliquez sur OK. Cela ajoute une référence sous la forme d'une option du compilateur /FU afin que le programme exécute la compilation ; cela copie également WindowsControlLibrary1.dll dans le répertoire du projet MFC02 afin que le programme s'exécute.

  4. Dans stdafx.h, recherchez la ligne suivante :

    #endif // _AFX_NO_AFXCMN_SUPPORT 
    

    Ajoutez ces lignes au-dessus :

    #include <afxwinforms.h>   // MFC Windows Forms support
    
  5. Modifiez la classe d'affichage afin qu'elle hérite de CWinFormsView.

    Dans MFC02View.h, remplacez CView par CWinFormsView afin que le code apparaisse comme ceci :

    class CMFC02View : public CWinFormsView
    {
    };
    

    Si vous souhaitez ajouter des affichages supplémentaires à votre application MDI, vous devez appeler CWinApp::AddDocTemplate pour chaque affichage que vous créez.

  6. Modifiez le fichier MFC02View.cpp pour transformer CView en CWinFormsView dans la macro IMPLEMENT_DYNCREATE et la table des messages, puis remplacez le constructeur vide existant par le constructeur indiqué dessous :

    IMPLEMENT_DYNCREATE(CMFC02View, CWinFormsView)
    
    CMFC02View::CMFC02View(): CWinFormsView(WindowsControlLibrary1::UserControl1::typeid) 
    {
    }
    BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView)
    //leave existing body as is
    END_MESSAGE_MAP()
    
  7. Générez et exécutez le projet.

    Dans l'Explorateur de solutions, cliquez avec le bouton droit sur MFC02, puis sélectionnez Définir comme projet de démarrage.

    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.

Voir aussi

Autres ressources

Hébergement d'un contrôle utilisateur Windows Form en tant que vue MFC