Partager via


CMDIFrameWnd, classe

Fournit les fonctionnalités d'une fenêtre frame d'interface multidocument (MDI) windows, ainsi que des membres pour gérer la fenêtre.

class CMDIFrameWnd : public CFrameWnd

Membres

Constructeurs publics

Nom

Description

CMDIFrameWnd::CMDIFrameWnd

Construit un CMDIFrameWnd.

Méthodes publiques

Nom

Description

CMDIFrameWnd::CreateClient

Crée une fenêtre de MDICLIENT windows pour cet CMDIFrameWnd. Appelé par la fonction membre d' OnCreate d' CWnd.

CMDIFrameWnd::CreateNewChild

Crée une nouvelle fenêtre enfant.

CMDIFrameWnd::GetWindowMenuPopup

Retourne le menu contextuel de la fenêtre.

CMDIFrameWnd::MDIActivate

Lance une fenêtre enfant MDI différente.

CMDIFrameWnd::MDICascade

Réorganise toutes les fenêtres enfants dans un format affiche en cascade.

CMDIFrameWnd::MDIGetActive

Récupère actuel - la fenêtre enfant MDI active, avec une balise qui indique si l'enfant est agrandi.

CMDIFrameWnd::MDIIconArrange

Réorganise toutes les fenêtres enfants réduites de document.

CMDIFrameWnd::MDIMaximize

Agrandit une fenêtre enfant MDI.

CMDIFrameWnd::MDINext

Active la fenêtre enfant immédiatement derrière actuel - la fenêtre enfant active et définit actuel - la fenêtre enfant active derrière toutes les autres fenêtres enfants.

CMDIFrameWnd::MDIPrev

Active la fenêtre enfant précédente et définit actuel - la fenêtre enfant active immédiatement derrière elle.

CMDIFrameWnd::MDIRestore

Restaure une fenêtre enfant MDI de taille agrandie ou réduite.

CMDIFrameWnd::MDISetMenu

Remplace le menu d'une fenêtre frame MDI, dans le menu contextuel de la fenêtre, ou des deux.

CMDIFrameWnd::MDITile

Réorganise toutes les fenêtres enfants dans un format en mosaïque.

Notes

Pour créer une fenêtre frame MDI utile pour votre application, dérivez une classe d' CMDIFrameWnd. Ajoutez des variables membres dans la classe dérivée au détail de données de mémoire à votre application. Implémentez les fonctions membres gestionnaires de messages et une table des messages dans la classe dérivée pour spécifier ce qui se produit lorsque les messages sont dirigés vers la fenêtre.

Vous pouvez construire une fenêtre frame MDI en appelant la fonction membre de Create ou de LoadFrame d' CFrameWnd.

Avant d'appeler Créer ou LoadFrame, vous devez construire l'objet de fenêtre frame sur le tas à l'aide de l'opérateur C++ nouveau . Avant de vous appelez Créer peut également stocker une classe de fenêtre avec la fonction globale d' AfxRegisterWndClass pour définir des styles d'icône et de classe pour le frame.

Utilisez la fonction membre de Créer pour passer des paramètres de la création du frame en tant qu'arguments immédiats.

LoadFrame requiert moins d'arguments que Créer, et extrait à la place la plupart de ses valeurs par défaut des ressources, y compris la légende du frame, l'icône, la table d'accélérateurs, et le menu. Pour accéder au LoadFrame, toutes ces ressources doivent avoir le même ID de ressource (par exemple, IDR_MAINFRAME).

Bien que MDIFrameWnd est dérivé d' CFrameWnd, une classe de fenêtre frame dérivée d' CMDIFrameWnd n'a pas besoin d'être déclarée avec DECLARE_DYNCREATE.

La classe d' CMDIFrameWnd hérite de nombreuses son implémentation par défaut d' CFrameWnd. Pour une liste détaillée de ces fonctionnalités, consultez la description de classe de CFrameWnd . La classe d' CMDIFrameWnd a des fonctionnalités supplémentaires suivantes :

  • Une fenêtre frame MDI gère la fenêtre de MDICLIENT , le repositionnant avec des barres de contrôles. La fenêtre cliente MDI est le parent direct des fenêtres frame enfant MDI. Les styles de fenêtre de WS_HSCROLL et de WS_VSCROLL spécifiés sur CMDIFrameWnd appliquent à la fenêtre cliente MDI plutôt que la fenêtre frame principale afin que l'utilisateur peut faire défiler la zone cliente MDI (comme dans le gestionnaire de programme Windows, par exemple).

  • Une fenêtre frame MDI possède un menu par défaut qui est utilisé comme barre de menus lorsqu'il n'y a pas de fenêtre enfant MDI active. Lorsqu'il existe un enfant MDI actif, la barre de menus de la fenêtre frame MDI est automatiquement remplacé par le menu de fenêtre enfant MDI.

  • Une fenêtre frame MDI fonctionne conjointement avec la fenêtre enfant MDI actuelle, s'il y en a une. Par exemple, les messages de commande sont délégués actuel - à l'enfant MDI actif avant la fenêtre frame MDI.

  • Une fenêtre frame MDI a les gestionnaires par défaut pour les commandes de menu Fenêtre standard suivantes :

    • ID_WINDOW_TILE_VERT

    • ID_WINDOW_TILE_HORZ

    • ID_WINDOW_CASCADE

    • ID_WINDOW_ARRANGE

  • Une fenêtre frame MDI a également une implémentation d' ID_WINDOW_NEW, qui crée un nouveau frame et vue du document actif. Une application peut substituer ces implémentations par défaut de commande pour personnaliser la gestion des fenêtres MDI.

N'utilisez pas l'opérateur C++ supprimer pour détruire une fenêtre frame. Utilisez plutôt CWnd::DestroyWindow. L'implémentation d' CFrameWnd d' PostNcDestroy supprimera l'objet C++ lorsque la fenêtre est détruite. Lorsque l'utilisateur ferme la fenêtre frame, le gestionnaire par défaut d' OnClose appelle DestroyWindow.

Pour plus d'informations sur CMDIFrameWnd, consultez fenêtres frames.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CFrameWnd

CMDIFrameWnd

Configuration requise

En-tête : afxwin.h

Voir aussi

Référence

CFrameWnd, classe

Graphique de la hiérarchie

CWnd, classe

CMDIChildWnd, classe

Concepts

Exemple MDI MFC

MFC exemple MDIDOCVW

MFC exemple SNAPVW