더북(TheBook)

2.3.5 CFirstDoc 클래스 분석

CFirstDoc 클래스는 프로그램에서 사용되는 데이터의 입출력과 관리를 담당하는 도큐먼트의 기능을 구현한 클래스이다. CFirstDoc 클래스는 CDocument 클래스로부터 상속받아 만들어지고, FirstDoc.h와 FirstDoc.cpp 파일에 구현되어 있다.

그림 2-38은 클래스 뷰에 나타난 CFirstDoc 클래스의 멤버 함수 목록을 보여준다. 이 중에서 OnDrawThumbnail, InitializeSearchContent, SetSearchContent 함수는 #ifdef ~ #endif 문장에 의해 막혀 있기 때문에 클래스 뷰 목록에는 나타나지만 실제로는 사용되지 않는다. CFirstDoc 클래스에서 주목해야 할 함수는 새 문서가 생성될 때 호출되는 OnNewDocument 함수이다. OnNewDocument 함수는 사용자가 First 프로그램의 메뉴에서 [파일] > [새로 만들기]를 선택했을 때 호출된다. 그러므로 새 도큐먼트가 생성될 때 필요한 초기화 작업은 OnNewDocument 함수에 추가하면 된다.

그림 2-38 CFirstDoc 클래스의 멤버 함수

도큐먼트가 새로 생성되는 방법에는 완전히 새로운 도큐먼트를 만드는 경우도 있지만, [파일] > [열기] 메뉴처럼 기존의 파일을 열면서 새 도큐먼트가 생성되는 경우도 있다. 이럴 때는 도큐먼트 클래스에서 OnOpenDocument 함수가 실행된다. 만약 First 프로그램에서 파일 열기 기능을 추가하고 싶은 경우에는 OnOpenDocumet 함수를 재정의해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.