Partilhar via


CDocument::OnNewDocument

Chamado pela estrutura sistema autônomo parte do comando novo arquivo.

virtual BOOL OnNewDocument( );

Valor de retorno

Diferente de zero se o documento foi inicializado com êxito; caso contrário, 0.

Comentários

A implementação padrão dessa função chama o DeleteContentsfunção de membro para garantir que o documento está vazio e, em seguida, marcará o novo documento sistema autônomo limpa.Substitua esta função para inicializar a estrutura de dados para um novo documento.Você deve telefonar a versão de classe base dessa função de sua substituir.

Se o usuário escolher o comando novo arquivo em um aplicativo SDI, a estrutura usa essa função para reinicializar o documento existente, em vez de criar um novo.Se o usuário escolher novo arquivo em um aplicativo de interface (MDI) vários documentos, a estrutura cria um novo documento cada time e, em seguida, chama esta função para inicializá-lo.Você deve colocar o código de inicialização nessa função em vez de no construtor para o novo comando para ser efetivo em aplicativos SDI.

Observe que existem casos onde OnNewDocument é chamado duas vezes. Isso ocorre quando o documento está incorporado sistema autônomo um servidor de documentos ActiveX.A função é chamada pela primeira vez, a CreateInstance método (expostos pela COleObjectFactory-classe derivada) e uma segunda vez, o InitNew método (expostos pela COleServerDoc-classe derivada).

Exemplo

Os exemplos a seguir ilustram métodos alternativos de inicializar um objeto de documento.

// Method 1: In an MDI application, the simplest place to do 
// initialization is in the document constructor.  The framework 
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}
// Method 2: In an SDI or MDI application, do all initialization 
// in an override of OnNewDocument, if you are certain that
// the initialization is effectively saved upon File Save
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   // Do initialization of new document here.

   return TRUE;
}
// Method 3: If the initialization of your document is not
// effectively saved and restored by serialization (during File Save
// and File Open), then implement the initialization in single
// function (named InitMyDocument in this example).  Call the
// shared initialization function from overrides of both
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   InitMyDocument(); // call your shared initialization function

   // If your new document object requires additional initialization
   // not necessary when the document is deserialized via File Open,
   // then perform that additional initialization here.

   return TRUE;
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CDocument

Gráfico de hierarquia

CDocument::CDocument

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnOpenDocument

CDocument::OnSaveDocument

Outros recursos

CDocument membros