第六章 文檔視圖結構_第1頁
第六章 文檔視圖結構_第2頁
第六章 文檔視圖結構_第3頁
第六章 文檔視圖結構_第4頁
第六章 文檔視圖結構_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、任課教師:單立娟任課教師:單立娟Email:shan_23在文檔在文檔/視圖結構里,文檔是一個應用程序數據基視圖結構里,文檔是一個應用程序數據基本元素的集合,它構成應用程序所使用的數據單本元素的集合,它構成應用程序所使用的數據單元;另外還提供了管理和維護數據的手段。元;另外還提供了管理和維護數據的手段。視圖是數據的用戶窗口,為用戶提供了文檔的可視圖是數據的用戶窗口,為用戶提供了文檔的可視數據顯示,它把文檔的部分或全部內容在窗口視數據顯示,它把文檔的部分或全部內容在窗口中顯示出來。中顯示出來。視圖還給用戶提供了一個與文檔中的數據交互的視圖還給用戶提供了一個與文檔中的數據交互的界面,把用戶的輸入轉

2、化為對文檔中數據的操作界面,把用戶的輸入轉化為對文檔中數據的操作。4文檔文檔/視圖結構的提出視圖結構的提出,大大簡化了應用程序的設計開大大簡化了應用程序的設計開發過程。文檔發過程。文檔/視圖結構帶來的好處主要有以下兩點視圖結構帶來的好處主要有以下兩點:(1)首先是將數據操作和數據顯示、用戶界面分離)首先是將數據操作和數據顯示、用戶界面分離開。這將使模塊劃分更加合理、模塊獨立性更強,同開。這將使模塊劃分更加合理、模塊獨立性更強,同時也簡化了數據操作和數據顯示、用戶界面工作。文時也簡化了數據操作和數據顯示、用戶界面工作。文檔只負責數據管理,不涉及用戶界面;視圖只負責數檔只負責數據管理,不涉及用戶界

3、面;視圖只負責數據輸出與用戶界面的交互,可以不考慮應用程序的數據輸出與用戶界面的交互,可以不考慮應用程序的數據是如何組織的,甚至當文檔中的數據結構發生變化據是如何組織的,甚至當文檔中的數據結構發生變化時也不必改動視圖的代碼。時也不必改動視圖的代碼。(2)VC在文檔在文檔/視圖結構上提供了許多標準操作界視圖結構上提供了許多標準操作界面,包括新建文件、打開文件、保存文件、打印等,面,包括新建文件、打開文件、保存文件、打印等,減輕了用戶的工作量。用戶不必再書寫這些重復的代減輕了用戶的工作量。用戶不必再書寫這些重復的代碼,從而可以把更多的精力放到完成應用程序特定功碼,從而可以把更多的精力放到完成應用程

4、序特定功能的代碼上。能的代碼上。5VC中有兩種類型的文檔中有兩種類型的文檔/視圖結構程序:單文視圖結構程序:單文檔界面(檔界面(SDI)應用程序和多文檔界面()應用程序和多文檔界面(MDI)應用程序。)應用程序。注意:文檔類注意:文檔類CView的的OnDraw函數的作用:函數的作用:顯示數據或圖形。顯示的設備依賴函數參數。顯示數據或圖形。顯示的設備依賴函數參數。pDC-TextOut (60,100,Hello,Welcome to Visual C+ 6.0!); 66.1 創建單文檔工程創建單文檔工程7實訓一實訓一參見:參見: 實驗實驗12-1構造應用程序框架構造應用程序框架.doc86

5、.2 文檔文檔/視圖與窗口框架間的關系視圖與窗口框架間的關系 前面利用前面利用MFC AppWizard創建了創建了SDI(單文檔界面單文檔界面)應用程序。應用程序。SDI應用程序一般由應用程序一般由4個類組成:個類組成:應用程應用程序類序類CWinApp、窗口框架類、窗口框架類CFrameWnd、視圖、視圖類類CView、文檔類、文檔類CDocument。應用程序類應用程序類CWinApp負責一個且唯一的一個應用程負責一個且唯一的一個應用程序對象的創建、初始化、運行和退出清理過程。序對象的創建、初始化、運行和退出清理過程。文檔類文檔類CDocument規定了應用程序所用的數據。規定了應用程序

6、所用的數據。視圖類視圖類CView是數據的用戶窗口,規定了用戶查看是數據的用戶窗口,規定了用戶查看文檔數據以及同數據交互的方式。視圖在窗口框架中文檔數據以及同數據交互的方式。視圖在窗口框架中顯示,它是窗口框架的子窗口。顯示,它是窗口框架的子窗口。窗口框架類窗口框架類CFrameWnd作用:一是為視圖提供可作用:一是為視圖提供可視的邊框。二是響應標準的窗口消息。視的邊框。二是響應標準的窗口消息。9SDI應用程序創建的過程如下應用程序創建的過程如下:1、在程序開始運行時,、在程序開始運行時,CWinApp創建一個創建一個CFrameWnd窗口窗口框架對象。框架對象。2、窗口框架對象創建文檔模板。、

7、窗口框架對象創建文檔模板。3、文檔模板創建文檔和視圖對象,并將兩者關聯。、文檔模板創建文檔和視圖對象,并將兩者關聯。這個過程可以從這個過程可以從CSDExampleApp的的InitInstance()函數函數代碼看到。代碼看到。InitInstance()函數的部分代碼如下。函數的部分代碼如下。BOOL CSDExampleApp:InitInstance() . 上述代碼中創建一個上述代碼中創建一個CSingleDocTemplate類對象,類對象,CSingleDocTemplate類對象調用主框架窗口類類對象調用主框架窗口類CFrameWnd構造函數創建窗口,主框架窗口創建構造函數創建

8、窗口,主框架窗口創建CSDExampleDoc文檔對象和文檔對象和CSDExampleView視圖對象。視圖對象。106.3創建具有切分窗口的應用程序創建具有切分窗口的應用程序MFC提供的提供的CSplitterWnd類類來切分窗口,即把一個窗口分割成多個來切分窗口,即把一個窗口分割成多個窗口使用。窗口使用。CSplitterWnd看上去像是一種特殊的框架窗口,每個窗看上去像是一種特殊的框架窗口,每個窗口都被相同的或者不同的視圖所填充。當窗口被切分后用戶可以使用鼠口都被相同的或者不同的視圖所填充。當窗口被切分后用戶可以使用鼠標移動切分條來調整窗口的相對尺寸。標移動切分條來調整窗口的相對尺寸。注

9、意:注意:CSplitterWnd類提供一個分割窗口的功能。所以需要向類提供一個分割窗口的功能。所以需要向CMainFrame類添加成員變量類添加成員變量m_wndSplitter,類型為,類型為CSplitterWnd。 116.4 切換窗口切換窗口12實實 訓訓 二二練習完成窗口的切割和切換練習完成窗口的切割和切換13實訓三實訓三參見實驗參見實驗12-3實現文本編輯器實現文本編輯器14實訓四實訓四 改變多文檔應用程序的背景改變多文檔應用程序的背景參見書上的參見書上的6.6實訓指導實訓指導ONEraseBkgnd代碼如下:代碼如下:CBrush bBrush(RGB(0,125,255);CBrush* pOldBrush=pDC-SelectObject(&bBrush);CRect rt;pD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論