第8章MFC基礎(chǔ)知識(shí)_第1頁(yè)
第8章MFC基礎(chǔ)知識(shí)_第2頁(yè)
第8章MFC基礎(chǔ)知識(shí)_第3頁(yè)
第8章MFC基礎(chǔ)知識(shí)_第4頁(yè)
第8章MFC基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第8章 MFC基礎(chǔ)知識(shí) 18.1 MFC概述 MFC是用來(lái)編寫Windows應(yīng)用程序的C+類集,該類集以層次結(jié)構(gòu)組織起來(lái),其中封裝了大部分Windows API函數(shù)和Windows控件,它所包含的功能涉及到整個(gè)Windows操作系統(tǒng)。 MFC不僅為用戶提供了 Windows圖形環(huán)境下應(yīng)用程序的框架,而且還提供了創(chuàng)建應(yīng)用程序的組件。2MFC還很好地保持了程序的向下兼容性是用來(lái)編寫Windows應(yīng)用程序的C+類集以層次結(jié)構(gòu)組織封裝了大部分API函數(shù)提供了圖形環(huán)境下應(yīng)用程序的框架提供了創(chuàng)建應(yīng)用程序的組件提供了大量的基類供程序員根據(jù)不同的應(yīng)用環(huán)境進(jìn)行擴(kuò)充允許在編程過(guò)程中自定義和擴(kuò)展應(yīng)用程序中的類較好的

2、移植性,可移植于眾多的平臺(tái)MFC3MFC1.0 & MS C/C+7.0應(yīng)用程序中非圖形部分的類GUI功能的Windows相關(guān)類MFC2.0 & MS VC+1.0在1.0基礎(chǔ)上增添了一些應(yīng)用程序MFC3.0 & VC+2.0增添了對(duì)開發(fā)32位應(yīng)用程序的支持MFC2.0 & MS VC+1.5添加了ODBC類,并且還支持OLE的性能MFC4.0包含了在Win95和N中大多數(shù)新的公共控件和DAO、MAPI增強(qiáng)了對(duì)數(shù)據(jù)庫(kù)應(yīng)用程序的支持利用DAO類通過(guò)編程語(yǔ)言來(lái)訪問(wèn)、操縱和管理數(shù)據(jù)庫(kù)對(duì)Internet也提供了強(qiáng)有力的支持MFC4.214 MFC5.0增強(qiáng)了對(duì)數(shù)據(jù)庫(kù)和Internet的支持,可使用OD

3、BC類和ODBC驅(qū)動(dòng)程序來(lái)訪問(wèn)提供ODBC支持的數(shù)據(jù)庫(kù)中的數(shù)據(jù);可以通過(guò)數(shù)據(jù)訪問(wèn)對(duì)象(DAO)類通過(guò)編程語(yǔ)言來(lái)訪問(wèn)和操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù)并管理數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象與結(jié)構(gòu)。這些支持主要包括以下幾個(gè)部分:Win32 Internet API使Internet成為應(yīng)用程序的一部分并簡(jiǎn)化了對(duì)Internet服務(wù)的訪問(wèn)Activex文檔可以顯示在整個(gè)Web瀏覽器或OLE容器的整個(gè)客戶窗口中 Activex控件可以用在Internet和桌面應(yīng)用程序中可以使用CHttpServer、CHttpFilter、ChttpServerContext和CHttpFilterContext類來(lái)建立動(dòng)態(tài)DLL,以便為Web

4、頁(yè)面增添功能5MFC6.0中引進(jìn)了新的功能:提出了活動(dòng)文檔容器來(lái)管理不同類型的文檔,并通過(guò)引入類COleDocObjectItem來(lái)加以實(shí)現(xiàn)。同時(shí)在應(yīng)用程序向?qū)е幸布尤肓藢?duì)這一新特性的支持。加入了對(duì)動(dòng)態(tài)HTML技術(shù)的支持,通過(guò)引入一個(gè)新類CHtmlView,使程序員開發(fā)的應(yīng)用程序可以瀏覽并顯示用動(dòng)態(tài)HTML技術(shù)開發(fā)的HTML文檔。類CHtmlView中封裝了許多瀏覽器的特征,包括瀏覽器在歷史記錄、書簽和安全等方面的特征都被封裝進(jìn)了類CHtmlView。擴(kuò)展了對(duì)公共控件的支持,如時(shí)間控鍵、IP地址控鍵和日期控鍵等。68.2 MFC類的組織結(jié)構(gòu)及主要的類的簡(jiǎn)介 78.2.1 MFC類的組織結(jié)構(gòu) M

5、FC庫(kù)中的類按層次關(guān)系劃分類:(1)根類:CObject(2)應(yīng)用程序體系結(jié)構(gòu)類(3)窗口、對(duì)話框和控件類(4)繪圖和打印類(5)簡(jiǎn)單數(shù)據(jù)類型類(6)數(shù)組、列表和映射類(7)文件和數(shù)據(jù)庫(kù)類(8)Internet和網(wǎng)絡(luò)工作類(9)OLE類(10)調(diào)試和異常類88.2.2 根類-CObjec MFC中多數(shù)類和用戶自定義子類的根類,是抽象基類。它提供了許多編程所需的公共操作。對(duì)象的建立對(duì)象的刪除運(yùn)行時(shí)信息對(duì)象診斷輸出串行化支持應(yīng)用程序和線程支持類命令相關(guān)類文檔類文檔模板類視類(體系結(jié)構(gòu))框架窗口(體系結(jié)構(gòu))應(yīng)用程序體系結(jié)構(gòu)類窗口、對(duì)話框和控件類框架窗口類(窗口)視類(窗口)對(duì)話框類控件條類繪圖和打印

6、類輸出(設(shè)備相關(guān))類繪圖工具類簡(jiǎn)單數(shù)據(jù)類型類數(shù)組、列表和映射類數(shù)組類列表類映射類9文件和數(shù)據(jù)庫(kù)類文件I/O類DAO類ODBC類Internet和網(wǎng)絡(luò)工作類LSAPI類Windows Socket類Win32 Internet類OLE類OLE容器類OLE服務(wù)器類OLE拖放和數(shù)據(jù)傳輸類OLE普通對(duì)話框類OLE動(dòng)畫類OLE動(dòng)畫類OLE控件類活動(dòng)文檔類其他文檔類調(diào)試和異常類調(diào)試支持類異常類108.2.3應(yīng)用程序體系結(jié)構(gòu)類 1命令相關(guān)類:CCmdTarget類該類是CObject的子類,它是MFC庫(kù)中所有具有消息映射屬性的基類。消息映射規(guī)定了當(dāng)一對(duì)象接收到消息命令時(shí),應(yīng)調(diào)用哪一個(gè)函數(shù)對(duì)該消息進(jìn)行處理應(yīng)用

7、程序體系結(jié)構(gòu)類1.命令相關(guān)類2.窗口應(yīng)用程序類3.文檔/視類4.線程基類編寫程序的任務(wù)是填充框架,添加應(yīng)用程序?qū)S玫墓δ苡糜跇?gòu)造應(yīng)用程序框架的結(jié)構(gòu),提供多數(shù)應(yīng)用程序公用的功能2線程基類:CWinThread類所有線程的基類,可直接使用。CWinApp類就是從CWinThread類中派生出來(lái)的114文檔/視類 文檔對(duì)象由文檔模板對(duì)象創(chuàng)建,管理應(yīng)用程序的數(shù)據(jù)。視對(duì)象表示一個(gè)窗口的客戶區(qū),顯示文檔數(shù)據(jù)并允許用戶與之交互3窗口應(yīng)用程序類:CWinApp類 每個(gè)應(yīng)用程序有且只有一個(gè)應(yīng)用程序?qū)ο?,在運(yùn)行程序中該對(duì)象與其它對(duì)象相互協(xié)調(diào),該對(duì)象從CWinApp類中派生出來(lái)。CWinApp類封裝了初始化、運(yùn)行、

8、終止應(yīng)用程序的代碼。12在CWinApp中定義的部分函數(shù)的功能有時(shí)也可以通過(guò)MFC提供的全局函數(shù)來(lái)實(shí)現(xiàn),這些全局函數(shù)一般都以Afx為前綴。例如調(diào)用AfxMessageBox函數(shù)將彈出一個(gè)消息框,其功能與CWinApp中的DoMessageBox相同。AfxMessageBox原型如下:int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 )138.2.4 可視對(duì)象類 2視類:CView類該類表示框架窗口的客戶區(qū)和顯示文檔數(shù)據(jù)并接收輸入的客戶區(qū),其派生類主要有如下幾種:CScrollView:具有滾動(dòng)功

9、能的視的基類CFormView:其布局在對(duì)話資源中定義的滾動(dòng)視CEditView:具有文本編輯、查找、替換和滾動(dòng)功能的視1窗口類:CWnd類Cwnd提供了MFC中所有窗口類的基本功能,是CCmdTarget類的子類創(chuàng)建Windows窗口要分兩步進(jìn)行引入構(gòu)造函數(shù),構(gòu)造一個(gè)CWnd對(duì)象調(diào)用Create建立Windows窗口,并將它連到CWnd對(duì)象上143菜單類:CMenu類該類是CObject類的子類,用于管理菜單。它是一個(gè)Windows HMenu的封裝,提供了與窗口有關(guān)的菜單資源建立、修改、跟蹤及刪除的成員函數(shù)。4對(duì)話框類:CDialog類由于對(duì)話框是一個(gè)特殊的窗口,所以該類是從CWnd類中派

10、生出來(lái)的。對(duì)話框子層次結(jié)構(gòu)包括通用對(duì)話框類CDialog以及支持文件選擇、顏色選擇、字體選擇、打印、替換文本的公共對(duì)話框子類。155控件類 控件子層次結(jié)構(gòu)包括若干類,使用這些類可建立靜態(tài)文本、命令按鈕、位圖按鈕、列表框、組合框、滾動(dòng)條、編輯框等。這些直觀控件為Windows應(yīng)用程序提供了各種輸入和顯示界面。6控件條類:CControlBar類 控件條子層次結(jié)構(gòu)為工具條、狀態(tài)條、對(duì)話條和分割窗口建立模型。該類是CToolBar、CStatusBar、CDialogBar的基類,負(fù)責(zé)管理工具條、狀態(tài)條、對(duì)話條的一些成員函數(shù)。控件條指的是連接在主窗口框架的頂部或底部的小窗口167繪畫對(duì)象類:CGdi

11、Object類圖形繪畫對(duì)象子層次結(jié)構(gòu)以CGdiObject類為根類,可用于建立繪畫對(duì)象模型,如畫筆、刷子、字體、位圖、調(diào)色板等。8設(shè)備描述表類:CDC類該類及其子類支持設(shè)備描述表對(duì)象,是CObject類的子類。CDC類是一個(gè)較大的類,包括許多成員函數(shù),如映射函數(shù)、繪畫工具函數(shù)、區(qū)域函數(shù)等,通過(guò)CDC對(duì)象的成員函數(shù)可以完成所有的繪畫工作178.2.5 通用類 此類提供了許多通用服務(wù),例如文件I/O、診斷和異常處理等,此外還包括如數(shù)組和列表等存放數(shù)據(jù)集的類1文件類:CFile類和CArchive類用以編寫輸入輸出處理函數(shù)2異常類:CException類是所有異常情況的基類。不能直接建立CExcep

12、tion對(duì)象,只能建立派生類的對(duì)象,用派生類來(lái)捕獲指定的異常情況3模板收集類這些類可以將多種對(duì)象存放到數(shù)組、列表和“ 映射”中。但這些收集類是模板,它們的參數(shù)確定了存放在集合中的對(duì)象類型。18CException的派生類如下。CNotSupportedException:不支持服務(wù)異常CMemoryException:內(nèi)存異常CFileException:文件異常CResourceException:資源異常COleException:OLE異常CArchiveException:檔案異常CDaoException:基于DAO的數(shù)據(jù)庫(kù)類異常CDBException:數(shù)據(jù)庫(kù)類異常CUserExc

13、eption:終端用戶操作異常19產(chǎn)生異常的原因描述將儲(chǔ)存在異常對(duì)象的m_cause數(shù)據(jù)成員中。例如CArchiveException 類的m_cause數(shù)據(jù)成員的可能值如下:badClass:不能讀錯(cuò)誤對(duì)象類型中的內(nèi)容badIndex:無(wú)效文件格式badSchema:無(wú)效對(duì)象版本endOfFile:到達(dá)文件尾Generic:不明異常None:無(wú)異常readOnly:試圖向只讀文件進(jìn)行寫操作writeOnly:試圖向只寫文件進(jìn)行讀操作208.2.6 OLE類 對(duì)象連接與嵌入子層次結(jié)構(gòu)為支持OLE提供了9個(gè)類普通類COleDocuemntCOleItemCOleException客戶類COleC

14、lientDocCOleClientItem服務(wù)器類COleServerCOleTemplateCOleServerDocCOleServerItem218.2.7 ODBC數(shù)據(jù)庫(kù)類 數(shù)據(jù)庫(kù)類CDatabase:封裝對(duì)數(shù)據(jù)源的連接,通過(guò)此連接應(yīng)用程序可在該數(shù)據(jù)源上進(jìn)行操作CRecordset:封裝了從數(shù)據(jù)源選出的記錄這些類面向ODBC且封裝了ODBC API22CRecordView:由CFormView派生,該類將記錄集對(duì)象連接到顯示當(dāng)前記錄的字段值的一個(gè)表單視圖來(lái)簡(jiǎn)化操作。CFieldExchange:提供上下文信息,支持在字段數(shù)據(jù)成員、記錄對(duì)象的參數(shù)數(shù)據(jù)成員及數(shù)據(jù)源上的對(duì)應(yīng)列表之間進(jìn)行數(shù)據(jù)交換CLongBinary:封裝一存儲(chǔ)句柄,用于存儲(chǔ)二進(jìn)制的對(duì)象,例如位圖等CDBException:記錄數(shù)據(jù)存取處理過(guò)程中的失敗產(chǎn)生的異常 常見數(shù)據(jù)庫(kù)類238.3MFC 中全局函數(shù)和全局變量以Afx為前綴的函數(shù)(數(shù)據(jù)庫(kù)類函數(shù)和DDX函數(shù)除外)和變量,在目前的版本中,都表示全局函數(shù)或全局變量。 AfxAbort:無(wú)條件終止一個(gè)應(yīng)用程序Af

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論