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