MFC Windows應(yīng)用程序設(shè)計(jì) 第3章 MFC應(yīng)用程序框架_第1頁
MFC Windows應(yīng)用程序設(shè)計(jì) 第3章 MFC應(yīng)用程序框架_第2頁
MFC Windows應(yīng)用程序設(shè)計(jì) 第3章 MFC應(yīng)用程序框架_第3頁
MFC Windows應(yīng)用程序設(shè)計(jì) 第3章 MFC應(yīng)用程序框架_第4頁
MFC Windows應(yīng)用程序設(shè)計(jì) 第3章 MFC應(yīng)用程序框架_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論