CDocument::OnOpenDocument
Chamado pela estrutura sistema autônomo parte do comando em em aberto arquivo.
virtual BOOL OnOpenDocument(
LPCTSTR lpszPathName
);
Parâmetros
- lpszPathName
Aponta para o caminho do documento a ser aberto.
Valor de retorno
Diferente de zero se o documento foi carregado com êxito; caso contrário, 0.
Comentários
A implementação padrão desta função abre o arquivo especificado, chama o DeleteContents função de membro para garantir que o documento está vazio, chama CObject::Serialize para ler o arquivo de Sumário e, em seguida, marca o documento sistema autônomo limpo.Substitua essa função se desejar usar algo diferente de mecanismo de arquivar ou o mecanismo de arquivos.Por exemplo, você pode escrever um aplicativo no qual documentos representam registros em um banco de dados em vez de arquivos separados.
Se o usuário escolher o comando em em aberto arquivo em um aplicativo SDI, a estrutura usa essa função para reinicializar o existenteCDocument objeto, em vez de criar um novo.Se o usuário optar por em aberto arquivo em um aplicativo MDI, a estrutura constrói um novo CDocument de cada objeto 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 comando em em aberto arquivo para ser efetivo em aplicativos SDI.
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;
}
// Additional example of OnOpenDocument()
BOOL CExampleDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
InitMyDocument(); // call your shared initialization function
return TRUE;
}
Requisitos
Cabeçalho: afxwin.h
Consulte também
Referência
CDocument::ReportSaveLoadException