CDocument::OnOpenDocument

virtual BOOL OnOpenDocument ( LPCTSTR lpszPathName );

Valor de retorno

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

Parâmetros

lpszPathName

Aponta para o caminho do documento a ser aberto.

Observações

Chamado pela estrutura como parte do arquivo abrir comando. A implementação padrão desta função abre o arquivo especificado, chama a função de membro DeleteContents para garantir que o documento está vazio, chama CObject:: Serialize para ler o conteúdo do arquivo e, em seguida, marca o documento como apagar. Substituir esta função se você quiser usar algo outro que o mecanismo de arquivamento ou o mecanismo de arquivo. Por exemplo, você pode escrever um aplicativo onde documentos representam registros em um banco de dados, em vez de arquivos separados.

Se o usuário escolhe o comando arquivo abrir em um aplicativo SDI, a estrutura usa essa função para reinicializar o objeto de CDocument existente, ao invés de criar uma nova. Se o usuário escolhe Arquivo Abrir em um aplicativo MDI, a estrutura constrói um objeto de CDocument novo cada vez e, em seguida, chama essa função para inicializá-lo. Você deve colocar seu código de inicialização nessa função em vez de no Construtor para o comando arquivo abrir ser eficaz em aplicativos SDI.

Exemplo

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

/ / Método 1: em um aplicativo MDI, o lugar mais simples para fazer / / inicialização está em constructor.nbsp de documento; O quadro / / sempre cria um novo objeto de documento para o novo arquivo ou abrir arquivo.

CMyDoc::CMyDoc()
{
   / / Fazer inicialização do documento MDI aqui.
   // ...
}

/ / Método 2: em um aplicativo SDI ou MDI, fazer tudo inicialização / / em uma Substituir de On&NewDocument, se você estiver certo de que
/ / a inicialização é efetivamente salva após salvar arquivo
/ / e totalmente restaurada após o arquivo aberto, através de serialização.

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

/ / Fazer inicialização do novo documento aqui.

retornar TRUE;
}

/ / Método 3: se a inicialização do seu documento não estiver
/ / efetivamente salvos e restaurados por serialização (durante a salvar arquivo
/ / e abrir arquivo), em seguida, implemente a inicialização única
/ / function (chamado InitMyDocument neste exemplo).  Chame o
/ / compartilhadas função de inicialização de substituições de ambos
/ / OnNewDocument e OnOpenDocument.
 
BOOL CMyDoc::OnNewDocument()
{
   if (!.CDocument::OnNewDocument())
      retornar FALSE;

InitMyDocument(); / / chamar sua função de inicialização compartilhada

/ / Se seu novo documento objeto requer inicialização adicional
   / / não é necessário quando o documento é desserializado através do arquivo abrir,
   / / Execute essa inicialização adicionais aqui.

retornar TRUE;
}

Visão geral de CDocument |nbsp; Membros de classe | Gráfico de hierarquia

Consulte tambémnbsp;CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::On&NewDocument, CDocument::OnSaveDocument, CDocument::ReportSaveLoadException, CObject:: Serialize

Index