




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MFC Windows應(yīng)用程序設(shè)計(jì)應(yīng)用程序設(shè)計(jì)第第3章章 MFC 應(yīng)用程序框架應(yīng)用程序框架MFC類類3.1最簡單的最簡單的MFC程序?qū)嵗绦驅(qū)嵗?.2 應(yīng)用程序的文檔應(yīng)用程序的文檔/視圖結(jié)構(gòu)視圖結(jié)構(gòu)3.33.1MFC類類1987-Win16(16位Windows操作系統(tǒng))API,在此基礎(chǔ)上推出了Windows GUI(圖形用戶界面)。1992-應(yīng)用程序框架產(chǎn)品AFX(Application Frameworks)-MFC產(chǎn)品。MFC類的基本層次結(jié)構(gòu)如圖1所示。3.1MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObje
2、ctCWinTreadCWinAppCViewCDialog及控件3.1MFC類類CObject類是MFC提供的絕大多數(shù)類的基類。該類完成動(dòng)態(tài)空間的分配與回收,支持一般診斷、出錯(cuò)信息處理和文檔序列化等。CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)3.1MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CCmdT
3、arget類主要負(fù)責(zé)將系統(tǒng)事件(消息)和窗口事件(消息)發(fā)送給響應(yīng)這些事件的對象,完成消息發(fā)送、等待和派遣(調(diào)度)等工作,實(shí)現(xiàn)應(yīng)用程序的對象之間協(xié)調(diào)運(yùn)行。3.1 MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWinThread類用來完成對線程的控制,包括線程的創(chuàng)建、運(yùn)行、終止和掛起等。3.1 MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadC
4、WinAppCViewCDialog及控件CWinApp類是應(yīng)用程序的主線程類,它是從CWinThread類派生而來。3.1 MFC類類CDocument類是文檔類,包含了應(yīng)用程序在運(yùn)行期間所用到的數(shù)據(jù)。CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)3.1 MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CWn
5、d類是一個(gè)通用的窗口類,用來提供Windows 中的所有通用特性、對話框和控件。3.1 MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CFrameWnd 類是從 CWnd 繼承來的,并實(shí)現(xiàn)了標(biāo)準(zhǔn)的框架應(yīng)用程序。3.1 MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CView 是用于讓用戶通過窗口來訪
6、問文檔。3.1 MFC類類圖圖1 MFC類的基本層次結(jié)構(gòu)類的基本層次結(jié)構(gòu)CCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CDialog 類用來控制對話框窗口。3.2 最簡單的最簡單的MFC程序?qū)嵗绦驅(qū)嵗?.2 最簡單的最簡單的MFC程序?qū)嵗绦驅(qū)嵗鼳FXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)ASSERT(hPrevInstance=NULL);int nRe
7、turnCode=-1;CWinThread *pThread=AfxGetThread();CWinApp *pApp=AfxGetApp();if(!AfxWinInit(hInstance, hPrevInstance, lpCmdLine,nCmdShow)goto InitFailure;3.2 最簡單的最簡單的MFC程序?qū)嵗绦驅(qū)嵗齣f(pApp!=NULL&!pApp-InitApplication()goto InitFailure;if(!pThread-InitInstance()if(pThread-m_pMainWnd !=NULL)TRACE0(Warning
8、 :Destroying non-NULL m_pMianWndn);pThread-m_pMainWnd -DestroyWindow();nReturnCode=pThread-ExitInstance();goto InitFailure;nReturnCode=pThread-Run ();InitFailure;#ifdef _DEBUGif(AfxGetModuleThreadState()-m_nTempMapLock!=0)TRACE1(Warning:Temp map lock count non-zero(%ld).n,AfxGetModuleThreadState() -
9、m_nTempMapLock);AfxLockTempMaps();AfxUnlockTempMaps(-1);#endifAfxWinTerm();return nReturnCode;3.3 應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序的文檔和視圖結(jié)構(gòu)用MFC設(shè)計(jì)的Windows應(yīng)用程序幾乎都采用文檔/視圖結(jié)構(gòu),主要是將應(yīng)用程序主窗口對象拆分成窗口框架類CFrameWnd對象、視圖類CView對象和文檔類CDocument對象。3.3 應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序的文檔和視圖結(jié)構(gòu)MFC把早期窗口類的功能分解成3個(gè)部分:數(shù)據(jù)存儲、管理部分,數(shù)據(jù)顯示與用戶交互部分,管理窗口框的大小、標(biāo)題、菜單條、狀態(tài)
10、條的窗框部分。分別對應(yīng)三個(gè)類文檔類CDocument、視圖類CView和窗口框架類CFrameWnd。3.3 應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序的文檔和視圖結(jié)構(gòu)文檔模板類對象用來統(tǒng)一創(chuàng)建管理文檔類對象、視圖類對象和主窗口框架類對象,使他們能夠形成一個(gè)相互配合、相互協(xié)調(diào)的實(shí)體。3.3 應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序類:其對象作為上述各類對象的容器,并實(shí)現(xiàn)應(yīng)用程序的初始化和消息循環(huán)。3.3 應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序的文檔和視圖結(jié)構(gòu)應(yīng)用程序類:其對象作為上述各類對象的容器,并實(shí)現(xiàn)應(yīng)用程序的初始化和消息循環(huán)。類型類型含義含義.cpp(C Plus Plus),.hC+文
11、件,文件,C+頭文件頭文件.opt關(guān)于開發(fā)環(huán)境的參數(shù)文件,如工具條位置等信息關(guān)于開發(fā)環(huán)境的參數(shù)文件,如工具條位置等信息.aps(AppStudio File)資源輔助文件,二進(jìn)制格式資源輔助文件,二進(jìn)制格式.clwClassWizard信息文件信息文件.dsp(DeveloperStudio Project)項(xiàng)目文件項(xiàng)目文件.dsw(DeveloperStudio Workspace) 項(xiàng)目工作區(qū)文件項(xiàng)目工作區(qū)文件.plg編譯信息文件編譯信息文件.hpj(Help Project)幫助文件項(xiàng)目幫助文件項(xiàng)目.mdp(Microsoft DevStudio Project)舊版本的項(xiàng)目文件舊版本的
12、項(xiàng)目文件.bsc瀏覽信息文件瀏覽信息文件.map執(zhí)行文件的映像信息紀(jì)錄文件執(zhí)行文件的映像信息紀(jì)錄文件.pch(Pre-Compiled File)預(yù)編譯文件,可以加快編譯速度,但是文件非常大預(yù)編譯文件,可以加快編譯速度,但是文件非常大.pdb(Program Database)記錄程序有關(guān)的一些數(shù)據(jù)和調(diào)試信息記錄程序有關(guān)的一些數(shù)據(jù)和調(diào)試信息.exp記錄記錄DLL文件中的一些信息,只有在編譯文件中的一些信息,只有在編譯DLL才會生成才會生成.ncb無編譯瀏覽文件無編譯瀏覽文件(no compile browser) 除了上述文件外,還有相應(yīng)的Debug(調(diào)試)或Release(發(fā)行)、Res(資源)等子文件夾。例如上述創(chuàng)建的單文檔應(yīng)用程序項(xiàng)目Ex_SDI,其各文件的組織如圖2.14所示。當(dāng)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勘察設(shè)計(jì)合同住建部
- 2025年咸寧貨運(yùn)從業(yè)資格證考試模擬考試題庫
- 2025年西雙版納貨運(yùn)運(yùn)輸駕駛員從業(yè)資格證考試試題
- 電商總監(jiān)勞務(wù)合同5篇
- 2023年高考真題全國乙卷地理試卷解析
- 微晶玻璃管戰(zhàn)略市場規(guī)劃報(bào)告
- 加班裝貨送貨合同范本
- 鹵肉店培訓(xùn)合同范本
- 廚房技術(shù)購買合同范本
- 1+X無人機(jī)模擬題與答案
- 航天集團(tuán)人才隊(duì)伍建設(shè)經(jīng)驗(yàn)介紹
- 牙周炎-侵襲性牙周炎
- 心理委員工作記錄表
- 新教科版五下科學(xué)1-5《當(dāng)環(huán)境改變了》公開課課件
- 教師的十大轉(zhuǎn)變課件
- 焦化廠生產(chǎn)工序及工藝流程圖
- 可下載打印的公司章程
- 中藥熏洗法課件
- 本特利探頭應(yīng)用
- QMR-110-00員工手部、接觸面等微生物檢驗(yàn)記錄記錄
- 外陰及陰道炎癥
評論
0/150
提交評論