Compartilhar via


CDocument::OnNewDocument

Chamado pela estrutura como parte do novo comando de Arquivo.

virtual BOOL OnNewDocument( );

Valor de retorno

Diferente de zero se o documento foi inicializado com êxito; se não 0.

Comentários

A implementação padrão de essa função chama a função de membro de DeleteContents para garantir que o documento está vazio e então marque o novo documento como limpa. Substituir essa função para inicializar a estrutura de dados para um novo documento. Você deve chamar a versão da classe base de essa função de sua substituição.

Se o usuário decidir o novo comando de Arquivo em um aplicativo de SDI, a estrutura usa essa função para reinicializar o documento existente, ao invés de criar um novo. Se o usuário decidir novo Arquivo em um aplicativo de (MDI) de interface de documentos múltiplos, a estrutura cria um novo documento sempre e então chama essa função inicializá-la. Você deve colocar seu código de inicialização em esta função em vez no construtor para o novo comando de Arquivo é eficiente em aplicativos de SDI.

Observe que há casos onde OnNewDocument é chamado duas vezes. Isso ocorre quando o documento é inserido como um servidor do documento ActiveX. A função é primeira chamada para o método de CreateInstance (expostos por COleObjectFactory- classe derivada) e uma segunda vez pelo método de InitNew (expostos por COleServerDoc- classe derivada).

Exemplo

Os exemplos a seguir ilustram métodos alternativas para 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 da hierarquia

CDocument::CDocument

CDocument::DeleteContents

CDocument::OnCloseDocument

CDocument::OnOpenDocument

CDocument::OnSaveDocument