版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
構(gòu)造應(yīng)用程序框架
3.1單文檔應(yīng)用框架
所謂的單文檔(SDI)界面應(yīng)用程序,是指在應(yīng)用程序中一次只能打開一個文件處理。打開下一個文件之前,必須先關(guān)閉上一個打開的文件,才能執(zhí)行下一個打開操作。對于涉及文檔較少的程序,只容許處理單個文檔的程序或執(zhí)行其它功能。2024/11/11VisualC++程序設(shè)計教程-2創(chuàng)建過程
創(chuàng)建工程。按照前一章創(chuàng)建工程的步驟創(chuàng)建一個工程,類型為SDI,工程名為Eg3_1,其他選項取默認(rèn)值。單擊“OK”按鈕,AppWizard就開始創(chuàng)建應(yīng)用的子目錄、文件和類。添加自己的代碼:
2024/11/11VisualC++程序設(shè)計教程-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è)計教程-4創(chuàng)建過程(續(xù))更改應(yīng)用程序的標(biāo)題:選擇工作區(qū)中ResourceVies標(biāo)簽,展開Eg3_1Resources|StringTable,雙擊StringTable,彈出字符串資源表。雙擊IDR_MAINFRAME項,彈出StringProperties對話框。在Caption編輯框中將標(biāo)題修改為“單文檔應(yīng)用程序\nEg3_1”。編譯、鏈接并運(yùn)行。
2024/11/11VisualC++程序設(shè)計教程-5CEg3_1App應(yīng)用程序運(yùn)行過程
CWinApp類創(chuàng)建的實(shí)例theApp,整個程序有且只有一個,一切由它開始,最后以它結(jié)束。VisualC++所產(chǎn)生的代碼首先通過初始化數(shù)據(jù)段來建立全局變量,以及建立一些MFC內(nèi)部使用的對象,然后執(zhí)行CWinApp類的構(gòu)造函數(shù)。
2024/11/11VisualC++程序設(shè)計教程-6CEg3_1App應(yīng)用程序運(yùn)行過程(續(xù))一旦所有靜態(tài)對象的構(gòu)造函數(shù)都執(zhí)行完畢,運(yùn)行時間庫就會調(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),或稱消息隊列。
2024/11/11VisualC++程序設(shè)計教程-7CEg3_1App應(yīng)用程序運(yùn)行過程(續(xù))當(dāng)程序接收到WM_QUIT消息,就意味著程序終止。這時,MFC會調(diào)用CWinApp類的ExitInstance(),然后是靜態(tài)對象的析構(gòu)函數(shù),包括CWinApp對象,然后將控制權(quán)交還操作系統(tǒng)。
2024/11/11VisualC++程序設(shè)計教程-83.2多文檔應(yīng)用框架
多文檔(MDI)接口應(yīng)用程序是指一個應(yīng)用程序可以同時打開多個文件進(jìn)行處理。
MDI是大多數(shù)應(yīng)用程序采用的形式。Microsoft公司的Word應(yīng)用軟件就是一個典型的多文檔應(yīng)用。
2024/11/11VisualC++程序設(shè)計教程-9單文檔應(yīng)用程序和多文檔應(yīng)用程序的比較
在MDI程序中許多程序的細(xì)節(jié)是與SDI程序是相同的。在MDI程序中使用了CMultiDocTemplate模板,以便程序能夠處理多個文檔,同時也將視圖和文檔類連接到該模板及CChildFrame類,CChildFrame類支持出現(xiàn)在主窗口內(nèi)部的MDI子窗口。
2024/11/11VisualC++程序設(shè)計教程-103.3基于對話框的應(yīng)用框架
基于對話框的應(yīng)用程序,是以對話框?yàn)樾问降膽?yīng)用程序,它對于那些涉及文檔較少,主要是交互式操作的應(yīng)用程序來說比較合適。 基于對話框的應(yīng)用框架和前面介紹的基于文檔的應(yīng)用框架有很大的區(qū)別。
2024/11/11VisualC++程序設(shè)計教程-11創(chuàng)建過程
在AppWizard的第一步,即MFCAppWizard--Step1中,選中“Dialogbased”單選框按鈕。在第四步,AppWizard會顯示出它將幫助用戶創(chuàng)建的類及屬性。在這個基于對話框的應(yīng)用中只有兩個類被創(chuàng)建。一個是應(yīng)用類CEg3_3App,另一個是對話框類CEg3_3Dlg。
2024/11/11VisualC++程序設(shè)計教程-12創(chuàng)建過程(續(xù))修改對話框資源: 在Textproperties對話框中,將Caption框中的“TODO:在這里設(shè)置對話控制?!眲h除,改成為“Hello,WelcometoVisualC++!”。編譯、鏈接、運(yùn)行。
注意:基于對話框的應(yīng)用框架和基于文檔的應(yīng)用框架的區(qū)別在于實(shí)現(xiàn)對話框的第一步是創(chuàng)建一個對話框?qū)ο骴lg,然后通過調(diào)用對話類的成員函數(shù)DoModal()來顯示對話框。2024/11/11VisualC++程序設(shè)計教程-133.4程序運(yùn)行流程分析
Windows的編程模式:
Windows程序運(yùn)行總是由WinMain()函數(shù)開始,該函數(shù)主要是建立應(yīng)用程序的主窗口。Windows程序通過操作系統(tǒng)發(fā)送的消息來處理用戶輸入,程序的主窗口中需要包含處理Windows所發(fā)送消息的代碼。
2024/11/11VisualC++程序設(shè)計教程-14MFC應(yīng)用程序的運(yùn)行過程
2024/11/11VisualC++程序設(shè)計教程-15MFC應(yīng)用程序的運(yùn)行過程(續(xù))MFC的應(yīng)用程序運(yùn)行過程如下:1.應(yīng)用程序定義一個應(yīng)用類全局對象。2.應(yīng)用類對象的構(gòu)造函數(shù)開始執(zhí)行。3.構(gòu)造函數(shù)執(zhí)行完后,調(diào)用初始化函數(shù)InitInstance()。4.在函數(shù)InitInstance()中,構(gòu)造文檔模板。5.構(gòu)造文檔模板時,按照生成一個文檔的順序先產(chǎn)生一個最初的文檔、視主框架。6.函數(shù)InitInstance()生成工具條和狀態(tài)條,以及其它用戶需要的工具。
7.函數(shù)InitInstance()執(zhí)行完成后,應(yīng)用程序處于等待消息的狀態(tài)。
2024/11/11VisualC++程序設(shè)計教程-16三種應(yīng)用程序框架的異同
相同:每個應(yīng)用程序的應(yīng)用類都會自動創(chuàng)建一個InitInstance()函數(shù)
相異:單文檔應(yīng)用程序中,應(yīng)用類的對象由應(yīng)用框架構(gòu)造,使用單文檔模板類CSingleDocTemplate的對象來構(gòu)造文檔模板。
2024/11/11VisualC++程序設(shè)計教程-17三種應(yīng)用程序框架的異同(續(xù))MDI應(yīng)用程序中,應(yīng)用類的對象同樣也由應(yīng)用框架構(gòu)造,使用多文檔模板類CMulitDocTemplate對象來構(gòu)造文檔模板?;趯υ捒虻膽?yīng)用程序中,首先在函數(shù)中生成一個對話框?qū)ο?,然后再通過DoModal()函數(shù)來調(diào)用和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招標(biāo)項目信息化系統(tǒng)升級與維護(hù)2025年度合同3篇
- 2025年度頁巖磚綠色建筑評價標(biāo)準(zhǔn)制定合同3篇
- 2025年度臨時建筑租賃合同補(bǔ)充協(xié)議3篇
- 二零二五年度城市綠化工程苗木種植與養(yǎng)護(hù)安裝合同3篇
- 二零二五年度寵物公園規(guī)劃設(shè)計及建設(shè)合同4篇
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)稅收優(yōu)惠政策擔(dān)保合同
- 2025年度鐵藝照明工程勞務(wù)分包合同協(xié)議書
- 2025年度購房稅費(fèi)墊付服務(wù)合同
- 2025年度跨境電商平臺貨物采購合同
- 2025年度原創(chuàng)音樂版權(quán)許可合同
- 2025水利云播五大員考試題庫(含答案)
- 老年髖部骨折患者圍術(shù)期下肢深靜脈血栓基礎(chǔ)預(yù)防專家共識(2024版)解讀
- 中藥飲片驗(yàn)收培訓(xùn)
- 手術(shù)室??谱o(hù)士工作總結(jié)匯報
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 蘇州市2025屆高三期初陽光調(diào)研(零模)政治試卷(含答案)
- 創(chuàng)傷處理理論知識考核試題及答案
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》測試題+答案
- 殘疾軍人新退休政策
- 《鐵路超限超重貨物運(yùn)輸規(guī)則》(2016)260
評論
0/150
提交評論