Notes
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.
La relation standard entre un document, son affichage et sa fenêtre frame sont décrites dans La création de document/vue. De nombreuses applications prennent en charge un type de document unique (mais éventuellement plusieurs documents ouverts de ce type) avec une vue unique sur le document et une seule fenêtre frame par document. Toutefois, certaines applications peuvent avoir besoin de modifier une ou plusieurs de ces valeurs par défaut.
Que voulez-vous en savoir plus sur
Types de documents multiples
L’Assistant Application MFC crée une classe de document unique pour vous. Dans certains cas, toutefois, vous devrez peut-être prendre en charge plusieurs types de documents. Par exemple, votre application peut avoir besoin de documents de feuille de calcul et de graphique. Chaque type de document est représenté par sa propre classe de document et probablement par sa propre classe d’affichage. Lorsque l’utilisateur choisit la commande Fichier Nouveau, l’infrastructure affiche une boîte de dialogue qui répertorie les types de documents pris en charge. Ensuite, il crée un document du type choisi par l’utilisateur. Chaque type de document est géré par son propre objet de modèle de document.
Pour créer des classes de document supplémentaires, consultez Ajout d’une classe. Choisissez CDocument comme type de classe à dériver et fournissez les informations de document demandées. Implémentez ensuite les données de la nouvelle classe.
Pour informer l’infrastructure de votre classe de document supplémentaire, vous devez ajouter un deuxième appel à AddDocTemplate dans le remplacement InitInstance de la classe d’application. Pour plus d’informations, consultez Modèles de document.
Affichages multiples
De nombreux documents ne nécessitent qu’une seule vue, mais il est possible de prendre en charge plusieurs vues d’un seul document. Pour vous aider à implémenter plusieurs vues, un objet document conserve une liste de ses vues, fournit des fonctions membres pour ajouter et supprimer des vues, et fournit la fonction membre UpdateAllViews pour informer plusieurs vues lorsque les données du document ont changé.
MFC prend en charge trois interfaces utilisateur courantes nécessitant plusieurs vues sur le même document. Ces modèles sont les suivants :
Affichez les objets de la même classe, chacun dans une fenêtre de cadre de document MDI distincte.
Vous pouvez prendre en charge la création d’une deuxième fenêtre frame sur un document. L’utilisateur peut choisir une commande Nouvelle fenêtre pour ouvrir un deuxième cadre avec une vue du même document, puis utiliser les deux cadres pour afficher simultanément différentes parties du document. L’infrastructure prend en charge la commande Nouvelle fenêtre dans le menu Fenêtre pour les applications MDI en dupliquant la fenêtre de cadre initiale et l’affichage attaché au document.
Afficher les objets de la même classe dans la même fenêtre de cadre de document.
Les fenêtres fractionnées divisent l’espace d’affichage d’une seule fenêtre de document en plusieurs vues distinctes du document. L’infrastructure crée plusieurs objets d’affichage à partir de la même classe d’affichage. Pour plus d’informations, consultez Splitter Windows.
Afficher les objets de différentes classes dans une seule fenêtre frame.
Dans ce modèle, une variante de la fenêtre de fractionnement, plusieurs vues partagent une seule fenêtre frame. Les vues sont construites à partir de différentes classes, chaque vue fournissant un moyen différent d’afficher le même document. Par exemple, une vue peut afficher un document de traitement de texte en mode normal, tandis que l’autre affichage l’affiche en mode plan. Un contrôle de fractionnement permet à l’utilisateur d’ajuster les tailles relatives des vues.
La figure suivante, divisée en parties a, b et c, montre les trois modèles d’interface utilisateur dans l’ordre présenté ci-dessus.
interfaces utilisateur Multiple-View
L’infrastructure fournit ces modèles en implémentant la commande New Window et en fournissant la classe CSplitterWnd, comme indiqué dans Splitter Windows. Vous pouvez implémenter d’autres modèles à l’aide de ceux-ci comme point de départ. Pour obtenir des exemples de programmes qui illustrent différentes configurations de vues, de fenêtres d’images et de séparateurs, consultez les exemples MFC.
Pour plus d’informations sur UpdateAllViews
, consultez la classe CView dans la référence MFC et l’exemple Scribble.
Fenêtres d’images multiples
Vous pouvez utiliser la commande Nouvelle fenêtre dans le menu Fenêtre pour les applications MDI pour créer une deuxième fenêtre frame sur le même document. Pour plus d’informations, consultez le premier modèle de la figure Multiple-View Interfaces utilisateur.
Fenêtres fractionnées
Dans une fenêtre de fractionnement, la fenêtre est ou peut être divisée en deux ou plusieurs volets défilants. Un contrôle de fractionnement (ou « zone fractionnée ») dans le cadre de la fenêtre en regard des barres de défilement permet à l’utilisateur d’ajuster les tailles relatives des volets. Chaque volet est un affichage sur le même document. Dans les séparateurs « dynamiques », les vues sont de la même classe, comme illustré dans la partie b de la figure Multiple-View Interfaces utilisateur. Dans les séparateurs « statiques », les vues peuvent être de différentes classes. Les fenêtres de fractionnement des deux types sont prises en charge par la classe CSplitterWnd.
Les fenêtres de fractionnement dynamique, avec des vues de la même classe, permettent à l’utilisateur de fractionner une fenêtre en plusieurs volets, puis de faire défiler différents volets pour voir différentes parties du document. L’utilisateur peut également désélitter la fenêtre pour supprimer les vues supplémentaires. Les fenêtres de fractionnement ajoutées à l’exemple Scribble sont un exemple. Cette rubrique décrit la technique de création de fenêtres de fractionnement dynamique. Une fenêtre de fractionnement dynamique est illustrée dans la partie b de la figure Multiple-View Interfaces utilisateur.
Les fenêtres de fractionnement statiques, avec des vues de différentes classes, commencent par la fenêtre divisée en plusieurs volets, chacune ayant un objectif différent. Par exemple, dans l’éditeur bitmap Visual C++, la fenêtre d’image affiche deux volets côte à côte. Le volet gauche affiche une image de taille de vie de la bitmap. Le volet de droite affiche une image zoomée ou agrandie du même bitmap. Les volets sont séparés par une « barre de fractionnement » que l’utilisateur peut faire glisser pour modifier les tailles relatives des volets. Une fenêtre de fractionnement statique est illustrée dans la partie c de la figure Multiple-View Interfaces utilisateur.
Pour plus d’informations, consultez la classe CSplitterWnd dans les exemples MFC Reference et MFC.