資源描述:
《文檔視圖界面ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Windows程序設(shè)計教程文檔/視圖界面文檔/視圖結(jié)構(gòu)是在VisualC++中,使用MFC開發(fā)基于文檔應用程序的基本框架。在這個框架中,數(shù)據(jù)的維護及其顯示是分別由兩個不同的、但又彼此緊密相關(guān)的對象——文檔和視圖負責的。本講將主要圍繞這一結(jié)構(gòu)的各個環(huán)節(jié)展開討論,理解這一結(jié)構(gòu)的原理和機制對基于文檔/視圖結(jié)構(gòu)的MFC應用程序開發(fā)具有重要作用。基本概念11.1單文檔和多文檔界面應用程序的實現(xiàn)11.2窗口分割與多視11.311.1基本概念可以把文檔看作是數(shù)據(jù)容器,而視圖則可以看作是查看數(shù)據(jù)的窗口或是和數(shù)據(jù)發(fā)生交互的窗口。本節(jié)對MFC中文檔
2、/視圖結(jié)構(gòu)的概念及其應用作進一步介紹。一般情況下,采用文檔/視圖結(jié)構(gòu)的應用程序至少應由以下對象組成:應用程序?qū)ο螅ㄒ话銥镃WinApp派生對象)、框架窗口對象(一般為CFrmeWnd派生對象)、文檔對象(一般為CDocument派生對象)、視圖對象(一般為CView派生對象)等。除應用程序?qū)ο笸?,其他對象的關(guān)系如圖11.1所示。圖11.1文檔、視圖以及框架的關(guān)系一個文檔可以對應多個不同視圖,而一個視圖一般只對應一個文檔。當文檔數(shù)據(jù)發(fā)生變化時,視圖顯示的狀態(tài)也會隨之變化;對于多個視圖的情況,基于同一文檔的多個視圖的顯示同步變化。當
3、然,并非所有基于窗口的應用都要使用文檔/視圖結(jié)構(gòu),以下兩種情況不宜采用文檔/視圖結(jié)構(gòu):(1)不是面向數(shù)據(jù)的應用或數(shù)據(jù)量很少的應用,不宜采用文檔/視圖結(jié)構(gòu),如一些工具程序,包括磁盤掃描程序、過程控制程序等;(2)不使用標準的窗口用戶界面的程序,如一些游戲等。11.1.2單文檔界面(SDI)應用程序圖11.2單文檔界面程序——NotePad記事本程序11.1.3多文檔界面(MDI)應用程序圖11.3多文檔界面程序——VisualC++6.011.2單文檔和多文檔界面應用程序的實現(xiàn)11.2.1利用AppWizard創(chuàng)建單文檔界面應用程
4、序框架在前面實例中多次使用AppWizard創(chuàng)建單文檔界面應用程序框架,其各向?qū)нx項采用的是默認設(shè)置,本節(jié)將詳細介紹各向?qū)υ捒蛑羞x項的含義。1.AppWizard——第1步在【MFCAppWizard-Step1】對話框中(如圖11.4所示)可以選擇所創(chuàng)建的應用程序類型,這里選擇“singledocument”即單文檔應用程序。2.AppWizard——第2步在第2步中,決定應用程序是否支持和如何支持數(shù)據(jù)庫,如圖11.5所示。圖11.4【MFCAppWizard-Step1】對話框圖11.5【MFCAppWizard-Step
5、2】對話框3.AppWizard——第3步在第3步中決定應用程序是否支持以及如何支持復合文檔,還可以選擇是否支持自動化(Automation)和ActiveX控件,如圖11.6所示。采用默認的選擇:不支持復合文檔和自動化,支持ActiveX控件。圖11.6【MFCAppWizard-Step3】對話框4.AppWizard——第4步在第4步中選擇應用程序界面的特性,如圖11.7所示。圖11.7【MFCAppWizard-Step4】對話框圖11.8【BcumentTemplateStrings】選項卡圖11.9【W(wǎng)indowss
6、tyles】選項卡5.AppWizard——第5步第5步?jīng)Q定AppWizard是否為自動生成的代碼添加注釋,默認選擇為自動生成。另外,還決定如何使用MFC庫,如圖11.10所示。圖11.10【MFCAppWizard-Step3】對話框應用程序可以有兩種方式使用MFC庫:使用MFC動態(tài)鏈接庫(AsasharedDLL)和使用MFC靜態(tài)鏈接庫(Asastaticlinkedlibrary)。默認選擇為使用MFC動態(tài)鏈接庫。6.AppWizard——第6步在第6步中可以指定AppWizard所生成的類的名稱、頭文件和實現(xiàn)文件名稱和類
7、的基類,如圖11.11所示。圖11.11【MFCAppWizard-Step4】對話框圖11.12程序運行結(jié)果11.2.2程序框架中的主要類及相互關(guān)系文檔/視圖結(jié)構(gòu)的應用程序框架中,主要包含5個類:CWinApp類、CFrameWnd類、CView類、CDocument類和CDocTemplate類。(1)CWinApp類為應用程序類,它是應用程序的起點,負責應用程序的啟動。(2)CFrameWnd類為框架窗口類,它是應用程序的框架窗口。所謂框架窗口,是指包括菜單、工具欄、狀態(tài)欄和窗口客戶區(qū)的整個應用程序的主窗口。(3)CVie
8、w類為視圖類,專門用來對應用程序的數(shù)據(jù)進行顯示。在視圖類中有一個很重要的函數(shù)OnDraw(),一般在派生類中要重寫這一函數(shù)。(4)CDocument類為文檔類,程序中需要的數(shù)據(jù)成員,由文檔類來進行集中管理。而且文檔類將直接與磁盤打交道,把文檔類中的數(shù)據(jù)存盤,或從