文檔模板定義了三個類之間的關係。
·
| 文檔類 | 由CDocument派生得到。 |
· | 視圖類 | 顯示文檔類的數據,可從CView,CScrollView, CFormView或CEditView中派生得到(可直接使用CEditView)。 |
· | 框架視窗類 | 含有視圖,對SDI套用,由CFrameWnd派生得到;對MDI,由CMDIChildWnd派生得到。如果無需定製框架視窗的行為,可直接使用CMDIChildWnd或CFrameWnd。 |
套用對它支持的每一類文檔都提供了一個文檔模板。例如,如果套用支持
工作表和
文本文檔,則套用有兩個文檔模板對象。每個文檔模板負責建立與管理該類型的文檔。
文檔模板將文檔、視圖和框架
視窗類的指針保存在CRuntimeClass 對象中。當構造文檔模板時,指定了CRuntimeClass對象。
文檔模板包括文檔類型(如選單、圖示、資源加速
符號表)使用的資源ID,還含有文檔類型的更多信息,包括文檔類型名稱(如WorkSheet)
檔案擴展名(如.xls)。有的還包括套用的用戶界面、Windows 檔案管理器和OLE支持等。
如果套用是一個OLE包容器與/或伺服器,文檔模板還說明了在激活時使用的
選單ID。如果套用是ID伺服器,文檔模板定義了在激活時使用的
工具條ID。通過SetContainerInfo和SetServerInfo來指定這些OLE資源。
CDocTemplate是
抽象類,不能直接使用,通常套用使用Microsoft基礎類庫提供的兩種CDocTemplate
派生類之一:CSingleDocTemplate用於SDI,CMultiDocTemplate用於MDI。使用文檔模板時要參閱更多信息。如果套用需要變化的用戶界面,這與SDI與MDI有根本不同,可以從CDocTemplate中派生出自己的類。
所需頭檔案:#include <afxwin.h>