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.
Vous pouvez créer des fenêtres directement à partir de CWnd, ou dériver de nouvelles classes de fenêtre à partir de CWnd. C’est la façon dont vous créez généralement vos propres fenêtres personnalisées. Toutefois, la plupart des fenêtres utilisées dans un programme d’infrastructure sont issues d'une des classes de fenêtres-cadre dérivées CWnd fournies par MFC.
Classes de fenêtre d’image
CFrameWnd
Utilisé pour les fenêtres de cadre SDI qui encadrent un document unique et sa vue. La fenêtre principale est à la fois la fenêtre principale de l'application et la fenêtre du document actuel.
CMDIFrameWnd
Utilisé comme fenêtre de trame principale pour les applications MDI. La fenêtre cadre principale est un conteneur pour toutes les fenêtres de document MDI et partage sa barre de menus avec eux. Une fenêtre MDI est une fenêtre principale qui apparaît sur le bureau.
CMDIChildWnd
Utilisé pour les documents individuels ouverts dans une fenêtre d’image principale MDI. Chaque document et son affichage sont encadrés par une fenêtre d’image enfant MDI contenue dans la fenêtre d’image principale MDI. Une fenêtre enfant MDI ressemble beaucoup à une fenêtre de cadre classique, mais elle est contenue dans une fenêtre MDI au lieu d’être posée sur le bureau. Toutefois, la fenêtre enfant MDI ne dispose pas d’une barre de menus propre. Il doit partager la barre de menus de la fenêtre MDI qui le contient.
Pour plus d’informations, voir Fenêtres d’image.
Autres classes de fenêtre dérivées de CWnd
En plus des fenêtres de cadre, plusieurs autres catégories principales de fenêtres sont dérivées de CWnd:
Vues :
Les vues sont créées à l’aide de laCWndclasseCViewdérivée (ou de l’une de ses classes dérivées). Une vue est attachée à un document et sert d’intermédiaire entre le document et l’utilisateur. Une vue est une fenêtre enfant (pas un enfant MDI) qui remplit généralement la zone cliente d’une fenêtre d’image SDI ou d’une fenêtre d’image enfant MDI (ou la partie de la zone cliente non couverte par une barre d’outils ou une barre d’état).Boîtes de dialogue :
Les boîtes de dialogue sont créées à l'aide de la classe dérivéeCWndCDialog.Formulaires :
Les vues de formulaire basées sur des ressources de modèle de dialogue, telles que les boîtes de dialogue, sont créées à l’aide de classesCFormView,CRecordViewouCDaoRecordView.Contrôles :
Les contrôles tels que les boutons, les zones de liste et les zones de liste modifiable sont créés à l’aide d’autres classes dérivées deCWnd. Consultez les rubriques de contrôle.Barres de contrôle :
Fenêtres enfants qui contiennent des contrôles. Les barres d’outils et les barres d’état sont des exemples. Consultez les barres de contrôle.
Hiérarchie des classes de fenêtre
Reportez-vous au graphique hiérarchique MFC dans la référence MFC. Les vues sont expliquées dans l’architecture document/vue. Les boîtes de dialogue sont expliquées dans les boîtes de dialogue.
Création de vos propres classes de fenêtre Special-Purpose
En plus des classes de fenêtre fournies par la bibliothèque de classes, vous pouvez avoir besoin de fenêtres enfants à usage spécial. Pour créer une fenêtre de ce type, créez votre propre classe dérivée CWnd et faites-en une fenêtre enfant d’une image ou d’une vue. N’oubliez pas que l’infrastructure gère l’étendue de la zone cliente d’une fenêtre de cadre de document. La majorité de la zone cliente est gérée par une vue, mais des fenêtres supplémentaires, telles que des barres de contrôle ou vos propres fenêtres personnalisées, peuvent partager l’espace avec elle. Vous devrez peut-être interagir avec les mécanismes des classes CView et CControlBar pour positionner les fenêtres enfants dans la zone cliente d’une fenêtre cadre.
La création de fenêtres décrit la création d’objets de fenêtre et les fenêtres qu’ils gèrent.