2.3.5 CFirstDoc 클래스 분석
CFirstDoc 클래스는 프로그램에서 사용되는 데이터의 입출력과 관리를 담당하는 도큐먼트의 기능을 구현한 클래스이다. CFirstDoc 클래스는 CDocument 클래스로부터 상속받아 만들어지고, FirstDoc.h와 FirstDoc.cpp 파일에 구현되어 있다.
그림 2-38은 클래스 뷰에 나타난 CFirstDoc 클래스의 멤버 함수 목록을 보여준다. 이 중에서 OnDrawThumbnail, InitializeSearchContent, SetSearchContent 함수는 #ifdef ~ #endif 문장에 의해 막혀 있기 때문에 클래스 뷰 목록에는 나타나지만 실제로는 사용되지 않는다. CFirstDoc 클래스에서 주목해야 할 함수는 새 문서가 생성될 때 호출되는 OnNewDocument 함수이다. OnNewDocument 함수는 사용자가 First 프로그램의 메뉴에서 [파일] > [새로 만들기]를 선택했을 때 호출된다. 그러므로 새 도큐먼트가 생성될 때 필요한 초기화 작업은 OnNewDocument 함수에 추가하면 된다.
도큐먼트가 새로 생성되는 방법에는 완전히 새로운 도큐먼트를 만드는 경우도 있지만, [파일] > [열기] 메뉴처럼 기존의 파일을 열면서 새 도큐먼트가 생성되는 경우도 있다. 이럴 때는 도큐먼트 클래스에서 OnOpenDocument 함수가 실행된다. 만약 First 프로그램에서 파일 열기 기능을 추가하고 싶은 경우에는 OnOpenDocumet 함수를 재정의해야 한다.