티스토리 뷰
도큐먼트 템플릿 (Document Template)
도큐먼트, 프레임 윈도우, 뷰 클래스에 대한 정보를 유지하며 필요에 따라 해당 객체를 동적으로 생성하는 역활을 한다.
응용프로그램 객체(프로젝트명App객체)는 이런 도큐먼트 템플릿을 생성하고 관리하며 일반적으로 1개의 도큐먼트 템플릿을 사용하지만 경우에 따라서는 여러개의 도큐먼트 템플릿을 사용하는 경우도 있다.
각 응용프로그램 객체의 InitInstance() 에 도큐먼트 템플릿 객체를 생성하는 코드를 가진다.
1
2
3
4
5
6
7
8
9
10
11
12
13 |
BOOL CMFCApplication2App::InitInstance()
{
...
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME, // 리소스 ID
RUNTIME_CLASS(CMFCApplication2Doc), // Doc 클래스에 대한 정보
RUNTIME_CLASS(CMainFrame), // 주 SDI 프레임 창에 대한 정보
RUNTIME_CLASS(CMFCApplication2View)); // View 클래스에 대한 정보
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate); // 응용 프로그램 객체에 도큐먼트 템플릿 등록
} |
cs |
각 Doc, MainFrame, View 클래스에 대한 정보를 가진 클래스 포인터를 CRuntimeClass* 형으로 바꿔 도큐먼트 템플릿 생성자 인자로 전달하고, 응용 프로그램 객체에 도큐먼트 템플릿을 등록한다.
코드에 대한 설명은 http://petra.tistory.com/930 참고