




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、3.1 基于基于MFC的窗口程序的窗口程序3.2 MFC應(yīng)用程序框架與應(yīng)用程序框架與Win32程序程序3.3 MFC應(yīng)用程序框架的基本類應(yīng)用程序框架的基本類3.4 基本類對象之間的相互訪問基本類對象之間的相互訪問第三章第三章 MFCMFC應(yīng)用程序框架應(yīng)用程序框架3.1 3.1 基于基于MFCMFC的窗口程序的窗口程序(1)(1)OLE: Object Linking and EmbeddingWOSA: Windows Open System ArchitectureAppWizard文件:文件: 工作區(qū)文件工作區(qū)文件:*.dsw 項目文件:項目文件:*.dsp 類信息文件:類信息文件:*.c
2、lw 應(yīng)用程序源文件:應(yīng)用程序源文件:*.cpp 應(yīng)用程序頭文件:應(yīng)用程序頭文件:*.h 資源文件:資源文件:*.rc, resource.h, *.rc2 預(yù)編譯頭文件:預(yù)編譯頭文件:stdAfx.cpp ,stdAfx.h3.1 3.1 基于基于MFCMFC的窗口程序的窗口程序(2)(2)AppWizard生成的基本類:生成的基本類:類名稱類名稱基類基類頭文件頭文件源文件源文件C*AppCWinApp*.h*.cppCMainFrameCFrameWndMainfrm.hMainfrm.cppC *DocCDocument*Doc.h*Doc.h.cppC *ViewCView*View.
3、h*View.cppu C*App:應(yīng)用程序類,負(fù)責(zé)程序的初始化和結(jié)束處理。:應(yīng)用程序類,負(fù)責(zé)程序的初始化和結(jié)束處理。u CMainFrame : 主窗口類,負(fù)責(zé)主窗口的創(chuàng)建、顯示和消息派發(fā)。主窗口類,負(fù)責(zé)主窗口的創(chuàng)建、顯示和消息派發(fā)。u C *Doc :文檔類,負(fù)責(zé)應(yīng)用程序的數(shù)據(jù)存儲、修改和管理。:文檔類,負(fù)責(zé)應(yīng)用程序的數(shù)據(jù)存儲、修改和管理。u C *View :視圖類,負(fù)責(zé)為數(shù)據(jù)的顯示和修改提供人機(jī)界面。:視圖類,負(fù)責(zé)為數(shù)據(jù)的顯示和修改提供人機(jī)界面。3.1 3.1 基于基于MFCMFC的窗口程序的窗口程序(3)(3)設(shè)置應(yīng)用程序環(huán)境參數(shù)設(shè)置應(yīng)用程序環(huán)境參數(shù) 鏈接庫文件(靜態(tài)鏈接庫和動態(tài)鏈接
4、庫)方法:鏈接庫文件(靜態(tài)鏈接庫和動態(tài)鏈接庫)方法:在文件中包含庫函數(shù)聲明。在文件中包含庫函數(shù)聲明。把對應(yīng)的庫文件(把對應(yīng)的庫文件(*.lib)加入項目。)加入項目。對動態(tài)鏈接庫,將對應(yīng)的對動態(tài)鏈接庫,將對應(yīng)的DLL文件(文件(*.dll)放在系)放在系統(tǒng)目錄或當(dāng)前目錄下。統(tǒng)目錄或當(dāng)前目錄下。 設(shè)置庫文件(設(shè)置庫文件(MFC庫和庫和 SDK庫)生成庫)生成MAKE文文件件Windows C Rumtime函數(shù)庫函數(shù)庫DLL Import函數(shù)庫函數(shù)庫MFC Import函數(shù)庫函數(shù)庫3.1 3.1 基于基于MFCMFC的窗口程序的窗口程序(4)(4)設(shè)置應(yīng)用程序環(huán)境參數(shù)設(shè)置應(yīng)用程序環(huán)境參數(shù) 引用正
5、確的頭文件:引用正確的頭文件:Stdafx.h:預(yù)編譯頭文件預(yù)編譯頭文件Afxwin.h:聲明所有聲明所有MFC類類Afxext.h:聲明工具欄和狀態(tài)欄等窗口特征聲明工具欄和狀態(tài)欄等窗口特征Afxdlgs.h:聲明通用型對話框的聲明通用型對話框的MFC類類Afxcmn.h:聲明聲明Windows 9X新增的通用控件類新增的通用控件類Afxcoll.h:聲明集合類聲明集合類Afxtempl.h:聲明模板集合類聲明模板集合類Afxdllx.h:聲明可制作聲明可制作MFC的擴(kuò)展的擴(kuò)展DLLAfxres.h:聲明聲明MFC的標(biāo)準(zhǔn)資源的標(biāo)準(zhǔn)資源3.1 3.1 基于基于MFCMFC的窗口程序的窗口程序(5
6、)(5)VC集成開發(fā)工具與應(yīng)用程序生成步驟:集成開發(fā)工具與應(yīng)用程序生成步驟: 利用利用VC的的AppWizard生成新項目。生成新項目。 VC集成編輯器可以編輯源文件,用集成編輯器可以編輯源文件,用ClassWizard編輯編輯C+類,在資源編輯器修改類,在資源編輯器修改資源文件。資源文件。 源文件經(jīng)過編譯生成源文件經(jīng)過編譯生成*.OBJ文件,資源文件經(jīng)文件,資源文件經(jīng)過編譯生成過編譯生成*.RES文件。鏈接器將各個文件。鏈接器將各個*.OBJ、*RES和庫文件結(jié)合起來,生成可執(zhí)行文件。和庫文件結(jié)合起來,生成可執(zhí)行文件。MFCMFC應(yīng)用程序生成過程應(yīng)用程序生成過程VC IDE(VC IDE(集
7、成編輯器集成編輯器) )App WizardApp Wizard源文件源文件.DEF.DEF.CPP.CPP.H.H.DSP.DSP.DSW.DSW資源文件資源文件.ICO.ICO.DLG.DLG.BMP.BMPClassWizardClassWizardC/C+C/C+編譯器編譯器資源編輯器資源編輯器資源編譯器資源編譯器.LIB.LIB(C Rumtime(C Rumtime, ,DLL Import)DLL Import).OBJ.OBJ.RES.RES鏈接器(鏈接器(LinkerLinker).EXE.EXE3.2 MFC3.2 MFC應(yīng)用程序與應(yīng)用程序與Win32Win32程序(程序(
8、1 1)Windows程序的基本結(jié)構(gòu)(回憶第二章內(nèi)容)。程序的基本結(jié)構(gòu)(回憶第二章內(nèi)容)。MFC類對類對WinMain和和WndProc的封裝。的封裝。(P81圖圖3.14和和P86圖圖3.15) CWinApp:封裝了封裝了WinMain函數(shù)的功能函數(shù)的功能應(yīng)用程序啟動應(yīng)用程序啟動消息循環(huán)啟動消息循環(huán)啟動程序結(jié)束程序結(jié)束 CFrameWnd:封裝了封裝了WndProc函數(shù)的功能函數(shù)的功能窗口創(chuàng)建窗口創(chuàng)建消息處理消息處理窗口銷毀窗口銷毀3.2 MFC3.2 MFC應(yīng)用程序與應(yīng)用程序與Win32Win32程序(程序(2 2)MFC應(yīng)用程序的啟動流程應(yīng)用程序的啟動流程(P88圖圖3.16) 全局主
9、函數(shù)全局主函數(shù)AfxWinMainAfxWinMain()():啟動應(yīng)用程序:啟動應(yīng)用程序 C C* *App:InitInstanceApp:InitInstance()() :創(chuàng)建窗口對象和主窗口,視:創(chuàng)建窗口對象和主窗口,視圖對象和視圖窗口,以及文檔對象。圖對象和視圖窗口,以及文檔對象。動態(tài)創(chuàng)建對象(見第八章)。動態(tài)創(chuàng)建對象(見第八章)。文檔模板類管理動態(tài)創(chuàng)建信息。文檔模板類管理動態(tài)創(chuàng)建信息。CCommandLineInfo類對象保存程序啟動時的命令行信息。類對象保存程序啟動時的命令行信息。ParseCommandLine()分解命令行信息,填寫程序啟動標(biāo)志。分解命令行信息,填寫程序啟動
10、標(biāo)志。ProcessShellCommand()根據(jù)命令行信息,啟動不同的任務(wù)。根據(jù)命令行信息,啟動不同的任務(wù)。創(chuàng)建創(chuàng)建“三個對象,兩個窗口三個對象,兩個窗口”的流程的流程(P92圖圖3.17和和P93圖圖3.18)窗口的顯示和更新窗口的顯示和更新 C C* *App:RunApp:Run()() :調(diào)用間接基類:調(diào)用間接基類CWinThread:RunCWinThread:Run()()讀取讀取消息隊列,并啟動消息循環(huán)。消息隊列,并啟動消息循環(huán)。3.3 MFC3.3 MFC應(yīng)用程序框架的基本類(應(yīng)用程序框架的基本類(1 1)1. MFC類體系的三大基類:類體系的三大基類:根類根類CObjec
11、t具有動態(tài)性、診斷性和持續(xù)性具有動態(tài)性、診斷性和持續(xù)性三大特性。從三大特性。從CObject派生的類,具有在程派生的類,具有在程序運行時,獲得對象大小和類名的能力。序運行時,獲得對象大小和類名的能力。(詳見第八章)(詳見第八章)從從CCmdTarget派生的類,具有在程序運行派生的類,具有在程序運行時,動態(tài)創(chuàng)建對象和處理命令消息的能力。時,動態(tài)創(chuàng)建對象和處理命令消息的能力。從從CWnd派生的類可以擁有自己的窗口,并派生的類可以擁有自己的窗口,并能對它進(jìn)行控制的能力。能對它進(jìn)行控制的能力。3.3 MFC3.3 MFC應(yīng)用程序框架的基本類(應(yīng)用程序框架的基本類(2 2)2. 基本類及其作用基本類及
12、其作用CWinApp:負(fù)責(zé)初始化和運行應(yīng)用程序:負(fù)責(zé)初始化和運行應(yīng)用程序CFrameWnd:負(fù)責(zé)顯示和搜尋用戶命令:負(fù)責(zé)顯示和搜尋用戶命令CDocument:負(fù)責(zé)裝載和維護(hù)文檔,其中:負(fù)責(zé)裝載和維護(hù)文檔,其中包括應(yīng)用程序的工作成果和環(huán)境設(shè)置數(shù)據(jù),包括應(yīng)用程序的工作成果和環(huán)境設(shè)置數(shù)據(jù),或其它任何內(nèi)容。或其它任何內(nèi)容。CView:負(fù)責(zé)為文檔提供一個或幾個視圖,:負(fù)責(zé)為文檔提供一個或幾個視圖,提供修改、查詢文檔的人機(jī)交互的界面。提供修改、查詢文檔的人機(jī)交互的界面。3. 基本類與基本類與SDI、MDI關(guān)系關(guān)系(P100圖圖 3.19和和P101圖圖3.20)3.4 3.4 基本類對象之間的相互訪問基本
13、類對象之間的相互訪問1.SDI1.SDI應(yīng)用程序基本類對象之間的相互訪問應(yīng)用程序基本類對象之間的相互訪問(P102P102圖圖3.213.21)2.MDI2.MDI應(yīng)用程序基本類對象之間的相互訪問應(yīng)用程序基本類對象之間的相互訪問(P103P103圖圖3.223.22)3.3.注意事項注意事項: 以上相互訪問僅限于同一應(yīng)用程序?qū)嵗蛲贿M(jìn)程中。以上相互訪問僅限于同一應(yīng)用程序?qū)嵗蛲贿M(jìn)程中。 注意相互訪問的函數(shù)有全局函數(shù)和類的成員函數(shù)。注意相互訪問的函數(shù)有全局函數(shù)和類的成員函數(shù)。 成員函數(shù)實際上是定義在成員函數(shù)實際上是定義在MFCMFC基類中?;愔?。 在應(yīng)用程序中任何一個類對象,要訪問應(yīng)用程序類對在應(yīng)用程序中任何一個類對象,要訪問應(yīng)用程序類對象,只需調(diào)用全局函數(shù)象,只需調(diào)用全局函數(shù)AfxGetAppA
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠房合租合同范本
- 藝人團(tuán)隊簽約合同范本
- 合作投資經(jīng)營合同范例
- 原木運輸合同范例
- 變更購房合同范本模板
- 合同范例精細(xì)化
- 公司加農(nóng)戶合同范本
- 合同范本在個部門官網(wǎng)
- 眾籌合資合同范本
- 壓款合同范本
- 2025人教版一年級下冊數(shù)學(xué)教學(xué)進(jìn)度表
- DeepSeek教案寫作指令
- GB/T 36548-2024電化學(xué)儲能電站接入電網(wǎng)測試規(guī)程
- 土力學(xué)與地基基礎(chǔ)(課件)
- 西服裙縫制工藝課件(PPT 14頁)
- 城市道路綠化養(yǎng)護(hù)工作
- 國內(nèi)木材炭化技術(shù)專利現(xiàn)狀
- 施耐德公司品牌戰(zhàn)略
- 校企合作人才培養(yǎng)模式實踐研究開題報告定稿
- 塑膠原料檢驗規(guī)范
- 建筑公司內(nèi)部管理流程-課件PPT
評論
0/150
提交評論