Création de fenêtres frame de document
La création de documents/vues montre comment l’objet CDocTemplate orchestre la création de la fenêtre frame, du document et de l’affichage et leur connexion ensemble. Trois arguments CRuntimeClass au CDocTemplate
constructeur spécifient la fenêtre frame, le document et les classes d’affichage que le modèle de document crée dynamiquement en réponse aux commandes utilisateur telles que la nouvelle commande dans le menu Fichier ou la commande Nouvelle fenêtre dans un menu fenêtre MDI. Le modèle de document stocke ces informations pour une utilisation ultérieure lorsqu’il crée une fenêtre frame pour une vue et un document.
Pour que le mécanisme de RUNTIME_CLASS fonctionne correctement, vos classes frame-window dérivées doivent être déclarées avec la macro DECLARE_DYNCREATE . Cela est dû au fait que l’infrastructure doit créer des fenêtres frame de document à l’aide du mécanisme de construction dynamique de classe CObject
.
Lorsque l’utilisateur choisit une commande qui crée un document, l’infrastructure appelle le modèle de document pour créer l’objet de document, son affichage et la fenêtre frame qui affiche l’affichage. Lorsqu’il crée la fenêtre frame de document, le modèle de document crée un objet de la classe appropriée , une classe dérivée de CFrameWnd pour une application SDI ou de CMDIChildWnd pour une application MDI. L’infrastructure appelle ensuite la fonction membre LoadFrame de l’objet frame-window pour obtenir des informations de création à partir de ressources et pour créer la fenêtre Windows. L’infrastructure attache le handle de fenêtre à l’objet frame-window. Ensuite, il crée l’affichage en tant que fenêtre enfant de la fenêtre cadre du document.
Soyez prudent pour décider quand initialiser votre CWnd
objet dérivé.