
La classe CMDIChildWnd fournit les fonctionnalités de Windows multiple document interface (multidocument MDI) fenêtre enfant, ainsi que des membres pour la gestion de la fenêtre.
Une fenêtre enfant MDI ressemble beaucoup à une fenêtre frame typique, sauf que la fenêtre enfant MDI apparaît à l'intérieur d'une fenêtre frame MDI, plutôt que sur le Bureau. Une fenêtre enfant MDI n'a pas une barre de menus de ses propres, mais plutôt partage le menu de la fenêtre frame MDI. Le cadre change automatiquement le menu de frame MDI pour représenter la fenêtre d'enfant MDI active.
Pour créer la fenêtre enfant MDI utile pour votre application, dérivez une classe de CMDIChildWnd. Ajoutez les variables de membre à la classe dérivée pour stocker des données spécifiques à votre application. Fonctions de membres du gestionnaire de messages mise en oeuvre et un message (carte) dans la classe dérivée de spécifier ce qui se passe lorsque les messages sont dirigés vers la fenêtre.
Il existe trois façons de construire une fenêtre enfant MDI:
Avant de vous appeler Create ou des cas, vous devez construire l'objet fenêtre frame sur le tas à l'aide de l'opérateur new C++. Avant d'appeler Create vous pouvez également enregistrer une classe de fenêtre avec la fonction globale AfxRegisterWndClass pour définir les styles d'icône et de classe pour le cadre.
Utilisez la fonction de membre de créer pour passer des paramètres de création de l'image comme arguments immédiates.
Cas nécessite moins d'arguments que créeret récupère au lieu de cela la plupart de ses valeurs par défaut des ressources, y compris du cadre légende, icône, table d'accélérateurs et menu. Pour être accessible par le cas, toutes ces ressources doivent avoir le même ID de ressource (par exemple, IDR_MAINFRAME).
Lorsqu'un objet de CMDIChildWnd contient des vues et des documents, ils sont créés indirectement par le cadre plutôt que directement par le programmeur. L'objet CDocTemplate orchestre la création de l'image, la création des vues contenant et la connexion des points de vue le document approprié. Les paramètres du constructeur CDocTemplate spécifient la CRuntimeClass des trois classes impliquées (document, cadre et vue). Un objet CRuntimeClass est utilisé par le framework pour créer dynamiquement des nouveaux cadres lorsque spécifié par l'utilisateur (par exemple, à l'aide de la commande fichier nouveau ou MDI fenêtre nouvelle).
Une classe de fenêtre frame dérivée de CMDIChildWnd doit être déclarée avec DECLARE_DYNCREATE afin que le mécanisme RUNTIME_CLASS ci-dessus fonctionne correctement.
La classe CMDIChildWnd hérite une grande partie de son implémentation par défaut de CFrameWnd. Pour une liste détaillée de ces fonctionnalités, veuillez vous reporter à la description de la classe CFrameWnd . La classe CMDIChildWnd possède les caractéristiques supplémentaires suivantes:
Ne pas utiliser l'opérateur delete de C++ pour détruire une fenêtre frame. Utilisez plutôt CWnd::DestroyWindow . La mise en œuvre de la classe CFrameWnd de PostNcDestroy supprime l'objet C++ quand la fenêtre est détruite. Lorsque l'utilisateur ferme la fenêtre frame, le gestionnaire d'événements par défaut OnClose appelle DestroyWindow.
Pour plus d'informations sur CMDIChildWnd, voir Sujets de fenêtre Frame dans le Guide du programmeur Visual C++.
# include lt;afxwin.h>
Membres de la classe |nbsp ; Classe de base | Graphique de la hiérarchie
Échantillons denbsp ; MFC Sample MDI | Exemple MFC MDIBIND | MFC exemple MDIDOCVW | MFC exemple SNAPVW
Voir aussi  ;CWnd, CMDIFrameWnd