【正文】
如圖 167所示的對話框。 // 從文件中讀取數(shù)據(jù) CSize sizeTextExtent=pDCGetTextExtent(str)。 // 獲取當(dāng)前客戶區(qū)的指針 CSize sizeClient=()。 // TODO: add draw code for native data here CRect rectClient。 這里我們用下面的代碼來替換類 CMysdiView的 OnDraw成員函數(shù) void CMysdiView::OnDraw(CDC* pDC) { CMysdiDoc* pDoc = GetDocument()。 return TRUE。 方法是使用下面的代碼替換 OnNewDocument的實現(xiàn)代碼中的 BOOL CMymdiDoc2::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE。事實上,可以把這些定義都放到同一個 public塊中,在定義中包括多個 public塊只是為了區(qū)別開不同用途的公有成員。 在 CMysdiDoc的定義中,找到下面的程序代碼段 // Attributes public: 在此之后手工地輸入 CString m_str。然后使用 ClassWizard為對話框生成 CDialog類的派生類 CDlgInput,并為其中的 Edit Box控件 (其 ID為 IDC_EDIT1)添加相關(guān)聯(lián)的成員變量 m_input,其類型為CString 16 3. 為 CMysdiDoc類添加成員變量 手動地將成員變量添加到類 CMysdiDoc的定義中。在應(yīng)用程序的主窗口中顯示一文本 “ 您好 , 單文檔界面的例程 !”,并始終出現(xiàn)在窗口的中央。 … … … … … } 13 文檔模板字符串在資源文件中的定義描繪了文檔模板的信息,它由至多九個子串組成。 pDocTemplate2 = new CMultiDocTemplate ( IDR_MYMDITYPE2, RUNTIME_CLASS(CMymdiDoc2), //MDI派生文檔類的 CRuntimeClass對象的指針 RUNTIME_CLASS(CChildFrame), //MDI派生子框架類的 CRuntimeClass對象的指針 RUNTIME_CLASS(CMymdiView2))。它們之間的聯(lián)系是通過文檔模板的構(gòu)造函數(shù)來實現(xiàn)的。每一種文檔類型都有一種文檔模板與之相對應(yīng),文檔模板負責(zé)創(chuàng)建和管理該文檔類型的所有文檔 CDocTemplate(UINT nIDResource, // 和文檔類型一同使用的各種資源的資源標(biāo)識符 CRuntimeClass* pDocClass, // 指向派生文檔類的 CRuntimeClass對象的指針 CRuntimeClass* pFrameClass, // 指向 派生框架類的 CRuntimeClass對象的指針 CRuntimeClass* pViewClass)。需要注意的是,該類的直接基類是 CView類 10 文檔模板類 CDocTemplate類 CDocTemplate類的基本函數(shù)說明 C Doc Te m p l at e 的一般方法和虛擬方法方法 說明Get D o c S t r in g () 獲得與文檔相關(guān)的字符串L o ad T e m p l at e ( ) 加載指定的模板Add D o c u m e n t () 給文檔模板添加指定的模板R e mo v e D oc u m e n t () 從文檔模板列表中刪除文檔G e tF i r s t D oc P o s i t io n ( ) 獲得與文檔模板相關(guān)的第一個文檔的位置G e tN e x t D o c( ) 獲得文檔及下一個文檔C r ea t e N e w Do c u m e n t( ) 建立文檔C r ea t e N e w Fr a m e () 建立包含文檔和視圖的框架窗口O p en D o c u m en t F i l e () 打開由路徑名指定的文檔C l os e All D oc u m e n t () 關(guān)閉所有文檔S e tD e f a u l tT i t l e ( ) 顯示文檔窗口的標(biāo)題欄中默認的標(biāo)題S a ve All M o di f i e d ( ) 查詢文檔模板的修改狀態(tài)并存儲與之關(guān)聯(lián)的所有文檔CDocTemplate類的基類為 CCmdTarget。它使一種數(shù)據(jù)的顯示方式可以更富于變化。值得注意的是,該類的直接基類不是 CView類,而是類 CCtrlView 主要提供 Rich文本操作的支持( Rich文本是既可以為文本,也可以為圖形的一種特殊格式文本。 ?重載 Serialize成員函數(shù),實現(xiàn)文檔數(shù)據(jù)的串行化。 ?為文檔類添加成員變量。1 第 16章 單文檔與多文檔 VC的 MFC庫支持三種不同的應(yīng)用程序 單文檔界面 (SDI) 多文檔界面 (MDI) 基于對話框的應(yīng)用程序 SDI的應(yīng)用程序 只有一個窗口 MDI的應(yīng)