CDocument::OnNewDocument

virtuel BOOL OnNewDocument ( );

Valeur de retour

Différent de zéro si le document a été initialisé avec succès ; sinon 0.

Remarques

Appelé par le framework dans le cadre de la commande nouveau dossier. L'implémentation par défaut de cette fonction appelle la fonction membre DeleteContents pour s'assurer que le document est vide et marque ensuite le nouveau document en propre. Substituer à cette fonction pour initialiser la structure de données pour un nouveau document. Vous devez appeler la version de classe de base de cette fonction de votre priorité.

Si l'utilisateur choisit la commande nouveau fichier dans une application SDI, le framework utilise cette fonction pour réinitialiser le document existant, plutôt que de créer un nouveau. Si l'utilisateur choisit le nouveau fichier dans une application d'interface (multidocument MDI) document multiples, le cadre crée un nouveau document chaque fois et puis appelle cette fonction pour l'initialiser. Vous devez placer votre code d'initialisation dans cette fonction au lieu de dans le constructeur pour la commande de nouveau fichier être efficace dans les applications SDI.

Exemple

/ / Les exemples suivants illustrent les méthodes alternatives de
/ / initialisation d'un objet document.

/ / Méthode 1: dans une application MDI, le plus simple où faire / / initialisation est dans le document constructor.nbsp ; Le cadre / / crée toujours un nouvel objet document pour le nouveau fichier ou dossier ouvert.

CMyDoc::CMyDoc()
{
   / / Do l'initialisation du document MDI ici.
   // ...
}

/ / Méthode 2: dans une application SDI ou MDI, faire toute initialisation / / dans une substitution de On&NewDocument, si vous êtes certain que
/ / l'initialisation est effectivement enregistrée sur fichier enregistrer
/ / et entièrement restauré sur un fichier ouvert, via la sérialisation.

BOOL CMyDoc::OnNewDocument()
{
   if (!.CDocument::OnNewDocument())
      Return FALSE ;

/ / Do l'initialisation du nouveau document ici.

Return TRUE ;
}

/ / Méthode 3: si l'initialisation de votre document n'est pas
/ / effectivement sauvé et restauré par la sérialisation (pendant le fichier enregistrer
/ / et ouvrir), puis mettre en œuvre l'initialisation en single
/ / fonction (appelé InitMyDocument dans cet exemple).  Appelez le
/ / partage de la fonction d'initialisation de substitutions des deux
/ / OnNewDocument et OnOpenDocument.

BOOL CMyDoc::OnNewDocument()
{
   if (!.CDocument::OnNewDocument())
      Return FALSE ;

InitMyDocument() ; / / appeler votre fonction d'initialisation partagé

/ / Si votre nouvel objet document requiert une initialisation supplémentaire
   / / n'est pas nécessaire lorsque le document est désérialisé via fichier ouvrir,
   / / puis d'exécuter l'initialisation supplémentaire ici.

Return TRUE ;
}

Aperçu de CDocument |nbsp ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CDocument::CDocument, CDocument::DeleteContents, CDocument::OnCloseDocument, à CDocument::OnOpenDocument, CDocument::OnSaveDocument

Index