文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt

ID:52508212

大?。?79.55 KB

頁數(shù):22頁

時(shí)間:2020-04-09

文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt_第1頁
文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt_第2頁
文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt_第3頁
文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt_第4頁
文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt_第5頁
資源描述:

《文檔視圖結(jié)構(gòu)的應(yīng)用程序開發(fā).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、第10章文檔/視圖結(jié)構(gòu)的應(yīng)用程序開發(fā)文檔/視圖結(jié)構(gòu)是在VisualC++中,使用MFC開發(fā)基于文檔應(yīng)用程序的基本框架。在這個(gè)框架中,數(shù)據(jù)的維護(hù)及其顯示是分別由兩個(gè)不同,但又彼此緊密相關(guān)的對(duì)象——文檔和視圖負(fù)責(zé)的。本章將主要圍繞這一結(jié)構(gòu)的各個(gè)環(huán)節(jié)展開討論,因?yàn)槔斫膺@一結(jié)構(gòu)的原理和機(jī)制對(duì)基于文檔/視結(jié)構(gòu)的MFC應(yīng)用開發(fā)具有重要作用。10.1文檔/視圖結(jié)構(gòu)在本書的第2章中,已經(jīng)簡單介紹了文檔/視圖結(jié)構(gòu)的基本概念,可以把文檔看作是數(shù)據(jù)容器,而視圖則可以看作是查看數(shù)據(jù)的窗口或是和數(shù)據(jù)發(fā)生交互的窗口。本節(jié)對(duì)MFC中,文檔/視圖結(jié)構(gòu)的概念及其應(yīng)用作進(jìn)一步介紹。10.1.

2、1文檔/視圖結(jié)構(gòu)概述MFC文檔/視結(jié)構(gòu)是一種新型的應(yīng)用程序結(jié)構(gòu),它的優(yōu)點(diǎn)主要包括:實(shí)現(xiàn)了數(shù)據(jù)存儲(chǔ)和顯示的分離、提供了常用的標(biāo)準(zhǔn)操作界面以及支持打印預(yù)覽功能等。一般情況下,采用文檔/視結(jié)構(gòu)的應(yīng)用程序至少應(yīng)由以下對(duì)象組成:應(yīng)用程序?qū)ο螅ㄒ话銥镃WinApp派生對(duì)象)、框架窗口對(duì)象(一般為CFrmeWnd派生對(duì)象)、文檔對(duì)象(一般為CDocument派生對(duì)象)、視圖對(duì)象(一般為CView派生對(duì)象)等。10.1.2文檔/視圖結(jié)構(gòu)的分類有兩種類型的文檔視結(jié)構(gòu)程序:單文檔界面(SDI)應(yīng)用程序和多文檔界面(MDI)應(yīng)用程序。10.2文檔/視圖結(jié)構(gòu)應(yīng)用程序框架分析正如前

3、面章節(jié)的實(shí)例開發(fā)所介紹的,使用AppWizard可以方便地創(chuàng)建文檔/視圖結(jié)構(gòu)框架應(yīng)用程序。本節(jié)將主要分析一下單文檔應(yīng)用程序框架的創(chuàng)建過程、結(jié)構(gòu)和工作機(jī)制。10.2.1利用AppWizard創(chuàng)建單文檔程序框架使用AppWizard創(chuàng)建單文檔程序框架在前面實(shí)例中多次用到,其各向?qū)нx項(xiàng)采用的是默認(rèn)設(shè)置,本節(jié)將詳細(xì)介紹各向?qū)?duì)話框中選項(xiàng)的含義。10.2.2程序框架中的主要類及相互關(guān)系文檔/視圖結(jié)構(gòu)的應(yīng)用程序框架中,主要包含5個(gè)類:CWinApp類、CFrameWnd類、CView類、CDocument類和CDocTemplate類。10.2.3文檔類、視圖類核心函

4、數(shù)及作用MFC在CDocument類和CView類中提供了一些相對(duì)比較重要的函數(shù),它們負(fù)責(zé)完成二者之間的通信或者為各自提供獨(dú)立的服務(wù)。CDocument對(duì)象負(fù)責(zé)讀入、保存和管理應(yīng)用程序的數(shù)據(jù)。文檔類允許向其中增加數(shù)據(jù)成員,其數(shù)據(jù)可以是任何類型的,如結(jié)構(gòu)體,類或鏈表等。10.2.4新建、保存和打開的實(shí)現(xiàn)在文檔/視圖結(jié)構(gòu)的應(yīng)用程序框架中,默認(rèn)生成了“文件”下拉菜單,其中“新建”、“保存”和“打開”菜單命令項(xiàng),系統(tǒng)自動(dòng)生成了菜單命令的響應(yīng)流程。10.2.5多文檔應(yīng)用程序框架多文檔界面應(yīng)用程序簡稱MDI(MultipleDocumentInterface),它允許

5、有多個(gè)文檔類、視圖類和多個(gè)文檔模板CMultiDocTemplate存在,即可以建立多種文檔——視圖——子框架窗口的關(guān)系。運(yùn)行時(shí)允許打開多個(gè)MDI子框架窗口,擁有各自的文檔和視圖對(duì)象。(具體內(nèi)容請(qǐng)參照本書)10.3文檔/視圖結(jié)構(gòu)應(yīng)用程序的開發(fā)本節(jié)將開發(fā)一個(gè)典型的文檔/視圖結(jié)構(gòu)的繪圖程序?qū)嵗こ蹋ㄟ^實(shí)例,講解有關(guān)視圖對(duì)象和文檔對(duì)象的具體開發(fā)過程和方法。10.3.1實(shí)現(xiàn)目標(biāo)本實(shí)例要?jiǎng)?chuàng)建一個(gè)單文檔繪圖程序,通過菜單或者工具欄按鈕可以選擇繪制直線、矩形和橢圓功能,而后通過鼠標(biāo)操作實(shí)現(xiàn)在客戶窗口的繪圖。其繪圖過程與Windows系統(tǒng)提供的繪圖程序相似:單擊鼠標(biāo)左鍵

6、作為繪圖起點(diǎn),拖動(dòng)鼠標(biāo)實(shí)現(xiàn)實(shí)時(shí)圖形顯示,是否鼠標(biāo)左鍵后完成繪圖操作。在實(shí)現(xiàn)基本功能的基礎(chǔ)上,進(jìn)一步完善程序,實(shí)現(xiàn)諸如存檔、滾動(dòng)視圖窗口等操作。10.3.2創(chuàng)建基本的程序框架本節(jié)實(shí)現(xiàn)單文檔界面程序框架的創(chuàng)建,并添加必要的菜單和工具欄資源。10.3.3創(chuàng)建文檔數(shù)據(jù)最終用戶在客戶區(qū)繪制圖形的數(shù)據(jù)是在文檔類中通過一個(gè)鏈表來記錄的。首先定義一個(gè)全局的數(shù)據(jù)結(jié)構(gòu)CGraph,用以記錄圖形相關(guān)的數(shù)據(jù)。(具體內(nèi)容請(qǐng)參照本書)10.3.4在視圖類中實(shí)現(xiàn)繪圖操作在本書的第5章介紹鼠標(biāo)編程時(shí),其實(shí)例也實(shí)現(xiàn)了簡單的繪圖操作,但是由于其繪制過程在OnDraw函數(shù)中實(shí)現(xiàn),因此無法實(shí)現(xiàn)窗

7、口的重繪。而本實(shí)例中,所有的繪圖操作均在CCh10Demo3View類的OnDraw函數(shù)中完成。10.3.5文檔的序列化序列化是將數(shù)據(jù)從應(yīng)用程序?qū)懭霐?shù)據(jù)文件或從數(shù)據(jù)文件讀入應(yīng)用程序的過程。序列化在文檔/視圖結(jié)構(gòu)中完成,當(dāng)用戶要保存或讀出數(shù)據(jù)時(shí)發(fā)生序列化過程,當(dāng)文檔數(shù)據(jù)發(fā)生變化時(shí),序列化會(huì)提示用戶保存數(shù)據(jù)。10.3.6對(duì)例程數(shù)據(jù)進(jìn)行序列化在本節(jié),實(shí)現(xiàn)對(duì)“Ch10Demo3”工程繪制的圖形對(duì)象能夠進(jìn)行存盤操作。(具體內(nèi)容請(qǐng)參照本書)10.3.7讓文檔視結(jié)構(gòu)程序支持滾動(dòng)條在前面實(shí)現(xiàn)的程序中,用戶繪圖區(qū)域還不能超過可視窗口。本節(jié)將實(shí)現(xiàn)給客戶區(qū)窗口添加滾動(dòng)條。要通過

8、滾動(dòng)條滾動(dòng)顯示文檔,還必須知道文檔滾動(dòng)到了什么位置;一旦用戶拖動(dòng)滾

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
关闭