《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖

《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖

ID:20112411

大小:364.00 KB

頁數(shù):80頁

時間:2018-10-10

《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖_第1頁
《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖_第2頁
《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖_第3頁
《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖_第4頁
《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖_第5頁
資源描述:

《《visual c++程序設(shè)計教程》第七章框架窗口、文檔和視圖》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第7章框架窗口、文檔和視圖7.1應(yīng)用程序組成結(jié)構(gòu)1.單文檔應(yīng)用程序(SingleDocumentInterface,SDI)在單文檔界面程序中,用戶在同一時刻只能操作一個文檔,如記事本程序。在這些應(yīng)用程序中,打開文檔時會自動關(guān)閉當(dāng)前打開的活動文檔,若文檔修改后尚未保存,會提示是否保存所做的修改。因為一次只開一個窗口,因此不像WORD那樣需要一個窗口菜單。單文檔應(yīng)用程序一般都提供一個“文件”菜單,在該菜單下有一組命令,用于新建文檔、打開已有文檔、保存或另存為等。這類程序相對比較簡單,常見的應(yīng)用程序有終端仿

2、真程序和一些工具程序。2.多文檔應(yīng)用程序(MultipleDocumentInterface,MDI)在多文檔界面應(yīng)用程序中,允許同時操作多個文檔,如MicrosoftWord??梢源蜷_多個文件(同時也就為每個文件打開一個窗口),可以通過切換活動窗口激活相應(yīng)的文檔進(jìn)行編輯。多文檔應(yīng)用程序也提供一個“文件”菜單,用于新建、打開、保存文檔。與單文檔應(yīng)用程序不同的是,它往往還提供一個“關(guān)閉”菜單項,用于關(guān)閉當(dāng)前打開的文檔。多文檔應(yīng)用程序還提供一個“窗口”菜單,管理所有打開的子窗口,包括對子窗口的新建、關(guān)閉、層

3、疊、平鋪等。關(guān)閉一個窗口時,窗口內(nèi)的文檔也被自動關(guān)閉。3.基于對話框的應(yīng)用程序(DialogbasedApplication)基于對話框的應(yīng)用程序非常簡單,由應(yīng)用程序類、對話框類(可以作為其它控件的容器)構(gòu)成。它的生命周期可概括為:通過應(yīng)用程序類的InitInstance()函數(shù),構(gòu)造一個模式對話框?qū)ο?;調(diào)用DoModal函數(shù),讓基于對話框的應(yīng)用程序像對待普通對話框一樣接收和分配消息;用戶退出對話框后,程序也就隨之結(jié)束。常見的基于對話框的應(yīng)用程序有計算器等(以對話框為容器布局的程序)。7.1.1CMai

4、nFrame類和窗口MFC應(yīng)用程序主要由3部分組成:窗口、文檔和視圖。其中窗口是整個應(yīng)用程序的載體,也是應(yīng)用程序不可缺少的部分。窗口也叫框架窗口,它可以分為兩類:一類是主框架窗口(也叫主窗口),另一類是子框架窗口(也叫子窗口)。在MFC應(yīng)用程序中,框架(Framework)是應(yīng)用程序所應(yīng)具備的軟件模塊按一定的結(jié)構(gòu)組成的集合。框架窗口可以理解為框架的可視化顯示形式。主框架窗口是應(yīng)用程序放置在桌面(DeskTop)上的那個窗口,每個應(yīng)用程序只能有一個主窗口,主窗口的標(biāo)題欄上通常顯示應(yīng)用程序的名稱。子框架窗口

5、是應(yīng)用程序主框架窗口內(nèi)的子窗口,它占據(jù)了主框架窗口客戶區(qū)的部分或全部。視圖是子框架窗口內(nèi)的子窗口,它占據(jù)了子框架窗口客戶區(qū)的部分或全部。圖7-1標(biāo)明了多文檔應(yīng)用程序中主框架窗口、子框架窗口和視圖之間的關(guān)系。由于單文檔應(yīng)用程序沒有子框架窗口,所以可以認(rèn)為視圖充滿了整個主框架窗口。使用MFCAppWizard創(chuàng)建單文檔應(yīng)用程序后,包含主框架窗口類的文件分別為MainFrm.h和MainFrm.cpp。主框架窗口類是由CFrameWnd派生而來的,類名為CMainFrame。而對于多文檔應(yīng)用程序,主框架窗口由

6、CMDIFrameWnd派生。CMainFrame類有4個重要的函數(shù):AssertValid、Dump、OnCreate和PreCreateWindow。這4個函數(shù)都是由應(yīng)用程序向?qū)ё詣勇暶骱投x的,無須人為干預(yù),不過了解它們的作用還是非常有必要的,在需要的情況下,用戶還可以修改它們以達(dá)到預(yù)定效果。它們各自的功能如下:(1)AssertValid函數(shù)用來診斷CMainFrame對象的有效性。(2)Dump函數(shù)用來輸出CMainFrame對象的狀態(tài)信息。(3)OnCreate函數(shù)用來創(chuàng)建工具欄m_wndT

7、oolBar和狀態(tài)欄m_wndStatusBar,而在視圖窗口中是由基類CFrameWnd的成員函數(shù)OnCreate通過調(diào)用OnCreateClient函數(shù)創(chuàng)建的。(4)PreCreateWindow函數(shù)是一個虛函數(shù)。如果要創(chuàng)建一個非默認(rèn)風(fēng)格的窗口,可以重載這個函數(shù),在函數(shù)中通過修改Createstruct結(jié)構(gòu)參數(shù)來改變窗口類、窗口風(fēng)格、窗口大小和位置等。7.1.2CDocument類和文檔CDocument類是CCmdTarget類的派生類,其派生關(guān)系如圖74所示。CDocument類為用戶定義的文

8、檔類提供了基本的函數(shù)功能,它支持標(biāo)準(zhǔn)操作,如創(chuàng)建、裝載、保存等。一個應(yīng)用程序可以支持多種類型的文檔,每種類型的文檔都通過一個文檔模板對象建立與各自視圖的聯(lián)系。不論是SDI應(yīng)用程序還是MDI應(yīng)用程序,文檔類都是從CDocument類派生出來的。在文檔/視圖結(jié)構(gòu)中,文檔類的主要任務(wù)通常是對數(shù)據(jù)進(jìn)行管理和維護(hù),數(shù)據(jù)將保存在文檔類的成員變量中,視圖通過對這些變量的訪問來獲取或返回數(shù)據(jù),并能通過這種方式來更新并顯示數(shù)據(jù)。從CDocument類派生文檔

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

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

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