




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第8章 MFC基礎(chǔ)知識 18.1 MFC概述 MFC是用來編寫Windows應(yīng)用程序的C+類集,該類集以層次結(jié)構(gòu)組織起來,其中封裝了大部分Windows API函數(shù)和Windows控件,它所包含的功能涉及到整個(gè)Windows操作系統(tǒng)。 MFC不僅為用戶提供了 Windows圖形環(huán)境下應(yīng)用程序的框架,而且還提供了創(chuàng)建應(yīng)用程序的組件。2MFC還很好地保持了程序的向下兼容性是用來編寫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ò)充允許在編程過程中自定義和擴(kuò)展應(yīng)用程序中的類較好的
2、移植性,可移植于眾多的平臺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增添了對開發(fā)32位應(yīng)用程序的支持MFC2.0 & MS VC+1.5添加了ODBC類,并且還支持OLE的性能MFC4.0包含了在Win95和N中大多數(shù)新的公共控件和DAO、MAPI增強(qiáng)了對數(shù)據(jù)庫應(yīng)用程序的支持利用DAO類通過編程語言來訪問、操縱和管理數(shù)據(jù)庫對Internet也提供了強(qiáng)有力的支持MFC4.214 MFC5.0增強(qiáng)了對數(shù)據(jù)庫和Internet的支持,可使用OD
3、BC類和ODBC驅(qū)動程序來訪問提供ODBC支持的數(shù)據(jù)庫中的數(shù)據(jù);可以通過數(shù)據(jù)訪問對象(DAO)類通過編程語言來訪問和操縱數(shù)據(jù)庫中的數(shù)據(jù)并管理數(shù)據(jù)庫、數(shù)據(jù)庫對象與結(jié)構(gòu)。這些支持主要包括以下幾個(gè)部分:Win32 Internet API使Internet成為應(yīng)用程序的一部分并簡化了對Internet服務(wù)的訪問Activex文檔可以顯示在整個(gè)Web瀏覽器或OLE容器的整個(gè)客戶窗口中 Activex控件可以用在Internet和桌面應(yīng)用程序中可以使用CHttpServer、CHttpFilter、ChttpServerContext和CHttpFilterContext類來建立動態(tài)DLL,以便為Web
4、頁面增添功能5MFC6.0中引進(jìn)了新的功能:提出了活動文檔容器來管理不同類型的文檔,并通過引入類COleDocObjectItem來加以實(shí)現(xiàn)。同時(shí)在應(yīng)用程序向?qū)е幸布尤肓藢@一新特性的支持。加入了對動態(tài)HTML技術(shù)的支持,通過引入一個(gè)新類CHtmlView,使程序員開發(fā)的應(yīng)用程序可以瀏覽并顯示用動態(tài)HTML技術(shù)開發(fā)的HTML文檔。類CHtmlView中封裝了許多瀏覽器的特征,包括瀏覽器在歷史記錄、書簽和安全等方面的特征都被封裝進(jìn)了類CHtmlView。擴(kuò)展了對公共控件的支持,如時(shí)間控鍵、IP地址控鍵和日期控鍵等。68.2 MFC類的組織結(jié)構(gòu)及主要的類的簡介 78.2.1 MFC類的組織結(jié)構(gòu) M
5、FC庫中的類按層次關(guān)系劃分類:(1)根類:CObject(2)應(yīng)用程序體系結(jié)構(gòu)類(3)窗口、對話框和控件類(4)繪圖和打印類(5)簡單數(shù)據(jù)類型類(6)數(shù)組、列表和映射類(7)文件和數(shù)據(jù)庫類(8)Internet和網(wǎng)絡(luò)工作類(9)OLE類(10)調(diào)試和異常類88.2.2 根類-CObjec MFC中多數(shù)類和用戶自定義子類的根類,是抽象基類。它提供了許多編程所需的公共操作。對象的建立對象的刪除運(yùn)行時(shí)信息對象診斷輸出串行化支持應(yīng)用程序和線程支持類命令相關(guān)類文檔類文檔模板類視類(體系結(jié)構(gòu))框架窗口(體系結(jié)構(gòu))應(yīng)用程序體系結(jié)構(gòu)類窗口、對話框和控件類框架窗口類(窗口)視類(窗口)對話框類控件條類繪圖和打印
6、類輸出(設(shè)備相關(guān))類繪圖工具類簡單數(shù)據(jù)類型類數(shù)組、列表和映射類數(shù)組類列表類映射類9文件和數(shù)據(jù)庫類文件I/O類DAO類ODBC類Internet和網(wǎng)絡(luò)工作類LSAPI類Windows Socket類Win32 Internet類OLE類OLE容器類OLE服務(wù)器類OLE拖放和數(shù)據(jù)傳輸類OLE普通對話框類OLE動畫類OLE動畫類OLE控件類活動文檔類其他文檔類調(diào)試和異常類調(diào)試支持類異常類108.2.3應(yīng)用程序體系結(jié)構(gòu)類 1命令相關(guān)類:CCmdTarget類該類是CObject的子類,它是MFC庫中所有具有消息映射屬性的基類。消息映射規(guī)定了當(dāng)一對象接收到消息命令時(shí),應(yīng)調(diào)用哪一個(gè)函數(shù)對該消息進(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類中派生出來的114文檔/視類 文檔對象由文檔模板對象創(chuàng)建,管理應(yīng)用程序的數(shù)據(jù)。視對象表示一個(gè)窗口的客戶區(qū),顯示文檔數(shù)據(jù)并允許用戶與之交互3窗口應(yīng)用程序類:CWinApp類 每個(gè)應(yīng)用程序有且只有一個(gè)應(yīng)用程序?qū)ο?,在運(yùn)行程序中該對象與其它對象相互協(xié)調(diào),該對象從CWinApp類中派生出來。CWinApp類封裝了初始化、運(yùn)行、
8、終止應(yīng)用程序的代碼。12在CWinApp中定義的部分函數(shù)的功能有時(shí)也可以通過MFC提供的全局函數(shù)來實(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 可視對象類 2視類:CView類該類表示框架窗口的客戶區(qū)和顯示文檔數(shù)據(jù)并接收輸入的客戶區(qū),其派生類主要有如下幾種:CScrollView:具有滾動功
9、能的視的基類CFormView:其布局在對話資源中定義的滾動視CEditView:具有文本編輯、查找、替換和滾動功能的視1窗口類:CWnd類Cwnd提供了MFC中所有窗口類的基本功能,是CCmdTarget類的子類創(chuàng)建Windows窗口要分兩步進(jìn)行引入構(gòu)造函數(shù),構(gòu)造一個(gè)CWnd對象調(diào)用Create建立Windows窗口,并將它連到CWnd對象上143菜單類:CMenu類該類是CObject類的子類,用于管理菜單。它是一個(gè)Windows HMenu的封裝,提供了與窗口有關(guān)的菜單資源建立、修改、跟蹤及刪除的成員函數(shù)。4對話框類:CDialog類由于對話框是一個(gè)特殊的窗口,所以該類是從CWnd類中派
10、生出來的。對話框子層次結(jié)構(gòu)包括通用對話框類CDialog以及支持文件選擇、顏色選擇、字體選擇、打印、替換文本的公共對話框子類。155控件類 控件子層次結(jié)構(gòu)包括若干類,使用這些類可建立靜態(tài)文本、命令按鈕、位圖按鈕、列表框、組合框、滾動條、編輯框等。這些直觀控件為Windows應(yīng)用程序提供了各種輸入和顯示界面。6控件條類:CControlBar類 控件條子層次結(jié)構(gòu)為工具條、狀態(tài)條、對話條和分割窗口建立模型。該類是CToolBar、CStatusBar、CDialogBar的基類,負(fù)責(zé)管理工具條、狀態(tài)條、對話條的一些成員函數(shù)??丶l指的是連接在主窗口框架的頂部或底部的小窗口167繪畫對象類:CGdi
11、Object類圖形繪畫對象子層次結(jié)構(gòu)以CGdiObject類為根類,可用于建立繪畫對象模型,如畫筆、刷子、字體、位圖、調(diào)色板等。8設(shè)備描述表類:CDC類該類及其子類支持設(shè)備描述表對象,是CObject類的子類。CDC類是一個(gè)較大的類,包括許多成員函數(shù),如映射函數(shù)、繪畫工具函數(shù)、區(qū)域函數(shù)等,通過CDC對象的成員函數(shù)可以完成所有的繪畫工作178.2.5 通用類 此類提供了許多通用服務(wù),例如文件I/O、診斷和異常處理等,此外還包括如數(shù)組和列表等存放數(shù)據(jù)集的類1文件類:CFile類和CArchive類用以編寫輸入輸出處理函數(shù)2異常類:CException類是所有異常情況的基類。不能直接建立CExcep
12、tion對象,只能建立派生類的對象,用派生類來捕獲指定的異常情況3模板收集類這些類可以將多種對象存放到數(shù)組、列表和“ 映射”中。但這些收集類是模板,它們的參數(shù)確定了存放在集合中的對象類型。18CException的派生類如下。CNotSupportedException:不支持服務(wù)異常CMemoryException:內(nèi)存異常CFileException:文件異常CResourceException:資源異常COleException:OLE異常CArchiveException:檔案異常CDaoException:基于DAO的數(shù)據(jù)庫類異常CDBException:數(shù)據(jù)庫類異常CUserExc
13、eption:終端用戶操作異常19產(chǎn)生異常的原因描述將儲存在異常對象的m_cause數(shù)據(jù)成員中。例如CArchiveException 類的m_cause數(shù)據(jù)成員的可能值如下:badClass:不能讀錯(cuò)誤對象類型中的內(nèi)容badIndex:無效文件格式badSchema:無效對象版本endOfFile:到達(dá)文件尾Generic:不明異常None:無異常readOnly:試圖向只讀文件進(jìn)行寫操作writeOnly:試圖向只寫文件進(jìn)行讀操作208.2.6 OLE類 對象連接與嵌入子層次結(jié)構(gòu)為支持OLE提供了9個(gè)類普通類COleDocuemntCOleItemCOleException客戶類COleC
14、lientDocCOleClientItem服務(wù)器類COleServerCOleTemplateCOleServerDocCOleServerItem218.2.7 ODBC數(shù)據(jù)庫類 數(shù)據(jù)庫類CDatabase:封裝對數(shù)據(jù)源的連接,通過此連接應(yīng)用程序可在該數(shù)據(jù)源上進(jìn)行操作CRecordset:封裝了從數(shù)據(jù)源選出的記錄這些類面向ODBC且封裝了ODBC API22CRecordView:由CFormView派生,該類將記錄集對象連接到顯示當(dāng)前記錄的字段值的一個(gè)表單視圖來簡化操作。CFieldExchange:提供上下文信息,支持在字段數(shù)據(jù)成員、記錄對象的參數(shù)數(shù)據(jù)成員及數(shù)據(jù)源上的對應(yīng)列表之間進(jìn)行數(shù)據(jù)交換CLongBinary:封裝一存儲句柄,用于存儲二進(jìn)制的對象,例如位圖等CDBException:記錄數(shù)據(jù)存取處理過程中的失敗產(chǎn)生的異常 常見數(shù)據(jù)庫類238.3MFC 中全局函數(shù)和全局變量以Afx為前綴的函數(shù)(數(shù)據(jù)庫類函數(shù)和DDX函數(shù)除外)和變量,在目前的版本中,都表示全局函數(shù)或全局變量。 AfxAbort:無條件終止一個(gè)應(yīng)用程序Af
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全門安裝工程合同
- 勞務(wù)分包合同標(biāo)準(zhǔn)格式2篇
- 居民供暖供氣合同范本
- 二手挖機(jī)出售協(xié)議案例3篇
- 學(xué)徒勞務(wù)合同范本3篇
- 利潤分成合作協(xié)議合同3篇
- 勞動合同中的試用期管理3篇
- 小型超市合作協(xié)議合同范本共3篇
- 學(xué)生宿舍后勤服務(wù)招標(biāo)3篇
- 安居房施工合同簽訂地點(diǎn)法律規(guī)定
- 2024年全國高中生物聯(lián)賽競賽試題和答案
- 財(cái)務(wù)指標(biāo)簡易操作計(jì)算器-小白版
- 刻字機(jī)快速使用指南
- 電路 (第四版) 全套教學(xué)課件
- 肥料、農(nóng)藥采購服務(wù)方案(技術(shù)方案)
- ISO17025經(jīng)典培訓(xùn)教材
- 磚砌隔油池施工方案
- 2022山東省中魯遠(yuǎn)洋漁業(yè)股份限公司招聘23人上岸筆試歷年難、易錯(cuò)點(diǎn)考題附帶參考答案與詳解
- GA/T 1999.2-2022道路交通事故車輛速度鑒定方法第2部分:基于汽車事件數(shù)據(jù)記錄系統(tǒng)
- 地基釬探記錄表
- 中班科學(xué)《筷子提米》
評論
0/150
提交評論