一個文檔模板定義了類的三個類型之間的關係: · 一個從CDocument派生而來的文檔類。
· 一個視類,用來顯示來自上面提到的文檔類的數據。你可以從CView,CScrollView,CFormView,或CEditView派生這個類。(你也可以直接使用CEditView。)
· 一個框架視窗類,用來包容視。對於一個SDI文檔模板,你可以從CFrameWnd派生這個類;如果你不需要定製主框架視窗的行為,你可以直接使用CFrameWnd,而不派生你自己的類。
一個SDI應用程式通常支持一種類型的文檔,因此它只有一個CSingleDocTemplate模板。一次只打開一個文檔。
除了CSingleDocTemplate的構造函式,你不需要調用它的任何其它成員函式。框架在內部處理CSingleDocTemplate對象。
CSingleDocTemplate(
UINT nIDResource,
CRuntimeClass* pDocClass,
CRuntimeClass* pFrameClass,
CRuntimeClass* pViewClass
);
其中參數
IDResource就是IDR_MAINFRAME。
(1)CDocTemplate::windowTitle,主視窗標題欄上的字元串,MDI程式不需要指定,將以IDR_MAINFRAME字元串為默認值。
(2)CDocTemplate::docName,預設文檔的名稱。如果沒有指定,預設文檔的名稱是無標題。
(3)CDocTemplate::fileNewName,文檔類型的名稱。如果應用程式支持多種類型的文檔,此字元串將顯示在"File/New"對話框中。如果沒有指定,就不能夠在"File/New"對話框處理這種檔案。
(4)CDocTemplate::filterName,文檔類型的描述和一個適用於此類型的通配符過濾器。這個字元串將出現在“File/Open”對話框中的檔案類型列表框中。要和CDocTemplate::filterExt一起使用。
(5)CDocTemplate::filterExt,文檔的擴展名。如果沒有指定,就不能夠在“File/Open”對話框中處理這種文檔。要和CDocTemplate::filterName一起使用。
(6)CDocTemplate::regFileTypeId,如果你以::RegisterShellFileTypes向系統的註冊表註冊檔案類型,此值會出現在HEY_CLASSES_ROOT之下成為其子項,並僅供Windows內部使用。如果沒有指定,這種檔案類型就無法註冊。
(7)CDocTemplate::regFileTypeName,這也是存儲在註冊表中的檔案類型名稱。它會顯示於程式中用以訪問註冊表的對話框內。