![Visual C++程序設(shè)計(jì)教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第1頁(yè)](http://file4.renrendoc.com/view14/M07/1A/38/wKhkGWcw3DaAAMJAAALMUzwbV-Q089.jpg)
![Visual C++程序設(shè)計(jì)教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第2頁(yè)](http://file4.renrendoc.com/view14/M07/1A/38/wKhkGWcw3DaAAMJAAALMUzwbV-Q0892.jpg)
![Visual C++程序設(shè)計(jì)教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第3頁(yè)](http://file4.renrendoc.com/view14/M07/1A/38/wKhkGWcw3DaAAMJAAALMUzwbV-Q0893.jpg)
![Visual C++程序設(shè)計(jì)教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第4頁(yè)](http://file4.renrendoc.com/view14/M07/1A/38/wKhkGWcw3DaAAMJAAALMUzwbV-Q0894.jpg)
![Visual C++程序設(shè)計(jì)教程(第二版)課件:構(gòu)造應(yīng)用程序框架_第5頁(yè)](http://file4.renrendoc.com/view14/M07/1A/38/wKhkGWcw3DaAAMJAAALMUzwbV-Q0895.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
構(gòu)造應(yīng)用程序框架
3.1單文檔應(yīng)用框架
所謂的單文檔(SDI)界面應(yīng)用程序,是指在應(yīng)用程序中一次只能打開一個(gè)文件處理。打開下一個(gè)文件之前,必須先關(guān)閉上一個(gè)打開的文件,才能執(zhí)行下一個(gè)打開操作。對(duì)于涉及文檔較少的程序,只容許處理單個(gè)文檔的程序或執(zhí)行其它功能。2024/11/11VisualC++程序設(shè)計(jì)教程-2創(chuàng)建過程
創(chuàng)建工程。按照前一章創(chuàng)建工程的步驟創(chuàng)建一個(gè)工程,類型為SDI,工程名為Eg3_1,其他選項(xiàng)取默認(rèn)值。單擊“OK”按鈕,AppWizard就開始創(chuàng)建應(yīng)用的子目錄、文件和類。添加自己的代碼:
2024/11/11VisualC++程序設(shè)計(jì)教程-3創(chuàng)建過程(續(xù))擴(kuò)充Eg3_1View.cpp中的OnDraw成員函數(shù):voidCEg3_1View::OnDraw(CDC*pDC){ CEg3_1Doc*pDoc=GetDocument(); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere
pDC->TextOut(60,100,"Hello,WelcometoVisualC++6.0!");}
2024/11/11VisualC++程序設(shè)計(jì)教程-4創(chuàng)建過程(續(xù))更改應(yīng)用程序的標(biāo)題:選擇工作區(qū)中ResourceVies標(biāo)簽,展開Eg3_1Resources|StringTable,雙擊StringTable,彈出字符串資源表。雙擊IDR_MAINFRAME項(xiàng),彈出StringProperties對(duì)話框。在Caption編輯框中將標(biāo)題修改為“單文檔應(yīng)用程序\nEg3_1”。編譯、鏈接并運(yùn)行。
2024/11/11VisualC++程序設(shè)計(jì)教程-5CEg3_1App應(yīng)用程序運(yùn)行過程
CWinApp類創(chuàng)建的實(shí)例theApp,整個(gè)程序有且只有一個(gè),一切由它開始,最后以它結(jié)束。VisualC++所產(chǎn)生的代碼首先通過初始化數(shù)據(jù)段來建立全局變量,以及建立一些MFC內(nèi)部使用的對(duì)象,然后執(zhí)行CWinApp類的構(gòu)造函數(shù)。
2024/11/11VisualC++程序設(shè)計(jì)教程-6CEg3_1App應(yīng)用程序運(yùn)行過程(續(xù))一旦所有靜態(tài)對(duì)象的構(gòu)造函數(shù)都執(zhí)行完畢,運(yùn)行時(shí)間庫(kù)就會(huì)調(diào)用WinMain()函數(shù),該函數(shù)初始化MFC應(yīng)用,并調(diào)用CWinApp類的InitInstance()函數(shù)。完成了這些工作后,WinMain()函數(shù)調(diào)用CWinApp類的Run()函數(shù),通常默認(rèn)為CWinThread::Run(),用來得到應(yīng)用程序的消息循環(huán),或稱消息隊(duì)列。
2024/11/11VisualC++程序設(shè)計(jì)教程-7CEg3_1App應(yīng)用程序運(yùn)行過程(續(xù))當(dāng)程序接收到WM_QUIT消息,就意味著程序終止。這時(shí),MFC會(huì)調(diào)用CWinApp類的ExitInstance(),然后是靜態(tài)對(duì)象的析構(gòu)函數(shù),包括CWinApp對(duì)象,然后將控制權(quán)交還操作系統(tǒng)。
2024/11/11VisualC++程序設(shè)計(jì)教程-83.2多文檔應(yīng)用框架
多文檔(MDI)接口應(yīng)用程序是指一個(gè)應(yīng)用程序可以同時(shí)打開多個(gè)文件進(jìn)行處理。
MDI是大多數(shù)應(yīng)用程序采用的形式。Microsoft公司的Word應(yīng)用軟件就是一個(gè)典型的多文檔應(yīng)用。
2024/11/11VisualC++程序設(shè)計(jì)教程-9單文檔應(yīng)用程序和多文檔應(yīng)用程序的比較
在MDI程序中許多程序的細(xì)節(jié)是與SDI程序是相同的。在MDI程序中使用了CMultiDocTemplate模板,以便程序能夠處理多個(gè)文檔,同時(shí)也將視圖和文檔類連接到該模板及CChildFrame類,CChildFrame類支持出現(xiàn)在主窗口內(nèi)部的MDI子窗口。
2024/11/11VisualC++程序設(shè)計(jì)教程-103.3基于對(duì)話框的應(yīng)用框架
基于對(duì)話框的應(yīng)用程序,是以對(duì)話框?yàn)樾问降膽?yīng)用程序,它對(duì)于那些涉及文檔較少,主要是交互式操作的應(yīng)用程序來說比較合適。 基于對(duì)話框的應(yīng)用框架和前面介紹的基于文檔的應(yīng)用框架有很大的區(qū)別。
2024/11/11VisualC++程序設(shè)計(jì)教程-11創(chuàng)建過程
在AppWizard的第一步,即MFCAppWizard--Step1中,選中“Dialogbased”單選框按鈕。在第四步,AppWizard會(huì)顯示出它將幫助用戶創(chuàng)建的類及屬性。在這個(gè)基于對(duì)話框的應(yīng)用中只有兩個(gè)類被創(chuàng)建。一個(gè)是應(yīng)用類CEg3_3App,另一個(gè)是對(duì)話框類CEg3_3Dlg。
2024/11/11VisualC++程序設(shè)計(jì)教程-12創(chuàng)建過程(續(xù))修改對(duì)話框資源: 在Textproperties對(duì)話框中,將Caption框中的“TODO:在這里設(shè)置對(duì)話控制。”刪除,改成為“Hello,WelcometoVisualC++!”。編譯、鏈接、運(yùn)行。
注意:基于對(duì)話框的應(yīng)用框架和基于文檔的應(yīng)用框架的區(qū)別在于實(shí)現(xiàn)對(duì)話框的第一步是創(chuàng)建一個(gè)對(duì)話框?qū)ο骴lg,然后通過調(diào)用對(duì)話類的成員函數(shù)DoModal()來顯示對(duì)話框。2024/11/11VisualC++程序設(shè)計(jì)教程-133.4程序運(yùn)行流程分析
Windows的編程模式:
Windows程序運(yùn)行總是由WinMain()函數(shù)開始,該函數(shù)主要是建立應(yīng)用程序的主窗口。Windows程序通過操作系統(tǒng)發(fā)送的消息來處理用戶輸入,程序的主窗口中需要包含處理Windows所發(fā)送消息的代碼。
2024/11/11VisualC++程序設(shè)計(jì)教程-14MFC應(yīng)用程序的運(yùn)行過程
2024/11/11VisualC++程序設(shè)計(jì)教程-15MFC應(yīng)用程序的運(yùn)行過程(續(xù))MFC的應(yīng)用程序運(yùn)行過程如下:1.應(yīng)用程序定義一個(gè)應(yīng)用類全局對(duì)象。2.應(yīng)用類對(duì)象的構(gòu)造函數(shù)開始執(zhí)行。3.構(gòu)造函數(shù)執(zhí)行完后,調(diào)用初始化函數(shù)InitInstance()。4.在函數(shù)InitInstance()中,構(gòu)造文檔模板。5.構(gòu)造文檔模板時(shí),按照生成一個(gè)文檔的順序先產(chǎn)生一個(gè)最初的文檔、視主框架。6.函數(shù)InitInstance()生成工具條和狀態(tài)條,以及其它用戶需要的工具。
7.函數(shù)InitInstance()執(zhí)行完成后,應(yīng)用程序處于等待消息的狀態(tài)。
2024/11/11VisualC++程序設(shè)計(jì)教程-16三種應(yīng)用程序框架的異同
相同:每個(gè)應(yīng)用程序的應(yīng)用類都會(huì)自動(dòng)創(chuàng)建一個(gè)InitInstance()函數(shù)
相異:?jiǎn)挝臋n應(yīng)用程序中,應(yīng)用類的對(duì)象由應(yīng)用框架構(gòu)造,使用單文檔模板類CSingleDocTemplate的對(duì)象來構(gòu)造文檔模板。
2024/11/11VisualC++程序設(shè)計(jì)教程-17三種應(yīng)用程序框架的異同(續(xù))MDI應(yīng)用程序中,應(yīng)用類的對(duì)象同樣也由應(yīng)用框架構(gòu)造,使用多文檔模板類CMulitDocTemplate對(duì)象來構(gòu)造文檔模板?;趯?duì)話框的應(yīng)用程序中,首先在函數(shù)中生成一個(gè)對(duì)話框?qū)ο?,然后再通過DoModal()函數(shù)來調(diào)用和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作獲獎(jiǎng)感言(21篇)
- 幸福的演講稿(15篇)
- 悲傷逆流成河觀后感7篇
- 建筑工程實(shí)習(xí)報(bào)告(15篇)
- 智研咨詢發(fā)布:2024年中國(guó)園林古建筑行業(yè)市場(chǎng)發(fā)展環(huán)境及前景研究報(bào)告
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園功能建設(shè)方案
- 應(yīng)急預(yù)案中的食品與藥品安全管理
- 金融信托行業(yè)顧問工作總結(jié)
- 2025版西瓜新品種研發(fā)與應(yīng)用推廣合同3篇
- 二零二五年度鋼構(gòu)建筑保溫分包施工協(xié)議2篇
- 充電樁知識(shí)培訓(xùn)課件
- 2025水利云播五大員考試題庫(kù)(含答案)
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(shí)(2024版)解讀
- 偏癱足內(nèi)翻的治療
- 藥企質(zhì)量主管競(jìng)聘
- 小學(xué)語(yǔ)文教師基本功大賽試卷及答案
- 汽車電氣設(shè)備檢測(cè)與維修中職全套教學(xué)課件
- 《鐵路超限超重貨物運(yùn)輸規(guī)則》(2016)260
- API682機(jī)械密封沖洗方案(中文)課件
- DB35T 1345-2013蘭壽系列金魚養(yǎng)殖技術(shù)規(guī)范
- 工行網(wǎng)銀代發(fā)工資操作流程
評(píng)論
0/150
提交評(píng)論