CDocument::OnOpenDocument

가상 BOOL OnOpenDocument ( LPCTSTR lpszPathName );

반환 값

문서가 성공적으로 로드 되었습니다; 아닌 그렇지 않으면 0。

매개 변수

lpszPathName

문서를 열 수를 경로에 점。

주의

파일 열기 명령의 일부로 프레임 워크에서 호출합니다. 이 함수의 기본 구현은 지정된 된 파일을 엽니다, 그리고 문서 비어 호출 하는 CObject::Serialize 파일의 내용을 읽을 수 있고 깨끗 한으로 문서를 표시 하도록 DeleteContents 멤버 함수를 호출 합니다. 아카이브 메커니즘 또는 파일 메커니즘 이외의 다른 뭔가 사용 하려는 경우이 함수를 재정의 합니다. 예를 들어, 문서 별도 파일 대신 데이터베이스에서 레코드를 나타내는 응용 프로그램을 작성할 수 있습니다.

SDI 응용 프로그램의 파일 열기 명령을 선택 하는 경우 프레임 워크는이 함수를 사용 하 여 새로운 하나를 만드는 대신 기존의 CDocument 개체를 초기화 합니다. 사용자가 MDI 응용 프로그램에서 파일 열기, 프레임 워크 때마다 새로운 CDocument 개체를 생성 하 고 초기화 하려면이 함수를 호출 합니다. SDI 응용 프로그램에 적용 되도록 파일 열기 명령에 대 한 생성자에 대신이 함수에 초기화 코드를 배치 해야 합니다.

예제

/ / 다음 예제의 대체 메서드를 보여 줍니다.
/ / 문서 개체를 초기화 합니다.

/ / 방법 1: 간단한 곳 MDI 응용 프로그램에서 / / 초기화는 문서 constructor.nbsp; 프레임 워크 / 항상 새 파일 또는 파일 열기에 대 한 새 문서 개체를 만듭니다.

CMyDoc::CMyDoc()
{
 ? / / MDI 문서 여기의 초기화를 수행 합니다.
 ? // ...
}

/ / 방법 2: SDI 또는 MDI 응용 프로그램에서 모든 초기화를 수행 / / OnNewDocument, 만약 당신이 특정의 재정의
/ / 초기화 파일 저장 시 저장 효과적으로
/ / 직렬화를 통해 파일 열기에 따라 완벽 하 게 복원 하 고 있습니다.

BOOL CMyDoc::OnNewDocument()
{
 ? if (!.CDocument::OnNewDocument(&))
 ???? FALSE; 반환

/ / 여기에 새 문서를 초기화 합니다.

TRUE를 반환 합니다.
}

/ / 방법 3: 문서를 초기화 하지 않으면
/ / 효과적으로 저장 하 고 (파일 저장 중에 직렬화 복원
/ / 파일 오픈), 단일에서 초기화를 구현
/ / 기능 (이 예제에서 InitMyDocument 라는).? 전화를
/ / 초기화 함수 재정의 모두에서 공유
/ / OnNewDocument 및 OnOpenDocument.
 
BOOL CMyDoc::OnNewDocument()
{
 ? if (!.CDocument::OnNewDocument())
 ???? FALSE; 반환

InitMyDocument(); / / 공유 초기화 함수 호출

/ / 새 문서 개체 추가 초기화를 필요로 하는 경우
 ? / / 문서 파일 열기를 통해 deserialize 할 때 필요 하지 않습니다
 ? / / 여기에 추가 초기화를 수행 합니다.

TRUE를 반환 합니다.
}

CDocument 개요 |nbsp; 클래스 멤버 (ko) | 계층 구조 차트(&N)

참고 항목nbsp;CDocument::DeleteContents, CDocument::OnCloseDocument, CDocument::OnNewDocument, CDocument::OnSaveDocument, CDocument::ReportSaveLoadException, CObject::Serialize(&N)

Index