版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1
MFC基礎(chǔ)知識28.1MFC概述
MFC是用來編寫Windows應(yīng)用程式的C++類集,該類集以層次結(jié)構(gòu)組織起來,其中封裝了大部分WindowsAPI函數(shù)和Windows控件,它所包含的功能涉及到整個Windows操作系統(tǒng)。
MFC不僅為用戶提供了Windows圖形環(huán)境下應(yīng)用程式的框架,而且還提供了創(chuàng)建應(yīng)用程式的組件。3MFC還很好地保持了程式的向下相容性是用來編寫Windows應(yīng)用程式的C++類集以層次結(jié)構(gòu)組織封裝了大部分API函數(shù)提供了圖形環(huán)境下應(yīng)用程式的框架提供了創(chuàng)建應(yīng)用程式的組件提供了大量的基類供程式員根據(jù)不同的應(yīng)用環(huán)境進行擴充允許在編程過程中自定義和擴展應(yīng)用程式中的類較好的移植性,可移植於眾多的平臺MFC4MFC1.0&MSC/C++7.0應(yīng)用程式中非圖形部分的類GUI功能的Windows相關(guān)類MFC2.0&MSVC++1.0在1.0基礎(chǔ)上增添了一些應(yīng)用程式MFC3.0&VC++2.0增添了對開發(fā)32位應(yīng)用程式的支持MFC2.0&MSVC++1.5添加了ODBC類,並且還支持OLE的性能MFC4.0包含了在Win95和N中大多數(shù)新的公共控件和DAO、MAPI增強了對數(shù)據(jù)庫應(yīng)用程式的支持利用DAO類通過編程語言來訪問、操縱和管理資料庫對Internet也提供了強有力的支持MFC4.215MFC5.0增強了對資料庫和Internet的支持,可使用ODBC類和ODBC驅(qū)動程式來訪問提供ODBC支持的資料庫中的數(shù)據(jù);可以通過數(shù)據(jù)訪問對象(DAO)類通過編程語言來訪問和操縱資料庫中的數(shù)據(jù)並管理資料庫、資料庫對象與結(jié)構(gòu)。這些支持主要包括以下幾個部分:Win32InternetAPI使Internet成為應(yīng)用程式的一部分並簡化了對Internet服務(wù)的訪問Activex文檔可以顯示在整個Web流覽器或OLE容器的整個客戶窗口中
Activex控件可以用在Internet和桌面應(yīng)用程式中可以使用CHttpServer、CHttpFilter、ChttpServerContext和CHttpFilterContext類來建立動態(tài)DLL,以便為Web頁面增添功能6MFC6.0中引進了新的功能:提出了活動文檔容器來管理不同類型的文檔,並通過引入類COleDocObjectItem來加以實現(xiàn)。同時在應(yīng)用程式嚮導(dǎo)中也加入了對這一新特性的支持。加入了對動態(tài)HTML技術(shù)的支持,通過引入一個新類CHtmlView,使程式員開發(fā)的應(yīng)用程式可以流覽並顯示用動態(tài)HTML技術(shù)開發(fā)的HTML文檔。類CHtmlView中封裝了許多流覽器的特徵,包括流覽器在歷史記錄、書簽和安全等方面的特徵都被封裝進了類CHtmlView。擴展了對公共控件的支持,如時間控鍵、IP地址控鍵和日期控鍵等。78.2MFC類的組織結(jié)構(gòu)及主要的類的簡介
88.2.1MFC類的組織結(jié)構(gòu)
MFC庫中的類按層次關(guān)係劃分類:(1)根類:CObject(2)應(yīng)用程式體系結(jié)構(gòu)類(3)窗口、對話框和控件類(4)繪圖和列印類(5)簡單數(shù)據(jù)類型類(6)數(shù)組、列表和映射類(7)檔和數(shù)據(jù)庫類(8)Internet和網(wǎng)路工作類(9)OLE類(10)調(diào)試和異常類98.2.2根類--CObject
MFC中多數(shù)類和用戶自定義子類的根類,是抽象基類。它提供了許多編程所需的公共操作。對象的建立對象的刪除運行時資訊對象診斷輸出串行化支持應(yīng)用程式和線程支持類命令相關(guān)類文檔類文檔範(fàn)本類視類(體系結(jié)構(gòu))框架窗口(體系結(jié)構(gòu))應(yīng)用程式體系結(jié)構(gòu)類窗口、對話框和控件類框架窗口類(窗口)視類(窗口)對話框類控件條類繪圖和列印類輸出(設(shè)備相關(guān))類繪圖工具類簡單數(shù)據(jù)類型類數(shù)組、列表和映射類數(shù)組類列表類映射類10檔和數(shù)據(jù)庫類檔I/O類DAO類ODBC類Internet和網(wǎng)路工作類ISAPI類WindowsSocket類Win32Internet類OLE類OLE容器類OLE伺服器類OLE拖放和數(shù)據(jù)傳輸類OLE普通對話框類OLE動畫類OLE動畫類OLE控件類活動文檔類其他文檔類調(diào)試和異常類調(diào)試支持類異常類118.2.3應(yīng)用程式體系結(jié)構(gòu)類
1.命令相關(guān)類:CCmdTarget類該類是CObject的子類,它是MFC庫中所有具有消息映射屬性的基類。消息映射規(guī)定了當(dāng)一對象接收到消息命令時,應(yīng)調(diào)用哪一個函數(shù)對該消息進行處理應(yīng)用程式體系結(jié)構(gòu)類1.命令相關(guān)類2.窗口應(yīng)用程式類3.文檔/視類4.線程基類編寫程式的任務(wù)是填充框架,添加應(yīng)用程式專用的功能用於構(gòu)造應(yīng)用程序框架的結(jié)構(gòu),提供多數(shù)應(yīng)用程序公用的功能2.線程基類:CWinThread類所有線程的基類,可直接使用。CWinApp類就是從CWinThread類中派生出來的124.文檔/視類
文檔對象由文檔範(fàn)本對象創(chuàng)建,管理應(yīng)用程式的數(shù)據(jù)。視對象表示一個窗口的客戶區(qū),顯示文檔數(shù)據(jù)並允許用戶與之交互3.窗口應(yīng)用程式類:CWinApp類
每個應(yīng)用程式有且只有一個應(yīng)用程式對象,在運行程式中該對象與其它對象相互協(xié)調(diào),該對象從CWinApp類中派生出來。CWinApp類封裝了初始化、運行、終止應(yīng)用程式的代碼。13在CWinApp中定義的部分函數(shù)的功能有時也可以通過MFC提供的全局函數(shù)來實現(xiàn),這些全局函數(shù)一般都以Afx為首碼。例如調(diào)用AfxMessageBox函數(shù)將彈出一個消息框,其功能與CWinApp中的DoMessageBox相同。AfxMessageBox原型如下:intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0)148.2.4可視對象類
2.視類:CView類該類表示框架窗口的客戶區(qū)和顯示文檔數(shù)據(jù)並接收輸入的客戶區(qū),其派生類主要有如下幾種:CScrollView:具有滾動功能的視的基類CFormView:其佈局在對話資源中定義的滾動視CEditView:具有文本編輯、查找、替換和滾動功能的視1.窗口類:CWnd類Cwnd提供了MFC中所有窗口類的基本功能,是CCmdTarget類的子類創(chuàng)建Windows窗口要分兩步進行引入構(gòu)造函數(shù),構(gòu)造一個CWnd對象調(diào)用Create建立Windows窗口,並將它連到CWnd對象上153.菜單類:CMenu類該類是CObject類的子類,用於管理菜單。它是一個WindowsHMenu的封裝,提供了與窗口有關(guān)的菜單資源建立、修改、跟蹤及刪除的成員函數(shù)。4.對話框類:CDialog類由於對話框是一個特殊的窗口,所以該類是從CWnd類中派生出來的。對話框子層次結(jié)構(gòu)包括通用對話框類CDialog以及支持檔選擇、顏色選擇、字體選擇、列印、替換文本的公共對話框子類。165.控件類
控件子層次結(jié)構(gòu)包括若干類,使用這些類可建立靜態(tài)文本、命令按鈕、位圖按鈕、列表框、組合框、滾動條、編輯框等。這些直觀控件為Windows應(yīng)用程式提供了各種輸入和顯示介面。6.控件條類:CControlBar類
控件條子層次結(jié)構(gòu)為工具條、狀態(tài)條、對話條和分割窗口建立模型。該類是CToolBar、CStatusBar、CDialogBar的基類,負(fù)責(zé)管理工具條、狀態(tài)條、對話條的一些成員函數(shù)。控件條指的是連接在主窗口框架的頂部或底部的小窗口177.繪畫對象類:CGdiObject類圖形繪畫對象子層次結(jié)構(gòu)以CGdiObject類為根類,可用於建立繪畫對象模型,如畫筆、刷子、字體、位圖、調(diào)色板等。8.設(shè)備描述表類:CDC類該類及其子類支持設(shè)備描述表對象,是CObject類的子類。CDC類是一個較大的類,包括許多成員函數(shù),如映射函數(shù)、繪畫工具函數(shù)、區(qū)域函數(shù)等,通過CDC對象的成員函數(shù)可以完成所有的繪畫工作188.2.5通用類
此類提供了許多通用服務(wù),例如檔I/O、診斷和異常處理等,此外還包括如數(shù)組和列表等存放數(shù)據(jù)集的類1.檔類:CFile類和CArchive類用以編寫輸入輸出處理函數(shù)2.異常類:CException類是所有異常情況的基類。不能直接建立CException對象,只能建立派生類的對象,用派生類來捕獲指定的異常情況3.範(fàn)本收集類這些類可以將多種對象存放到數(shù)組、列表和“映射”中。但這些收集類是範(fàn)本,它們的參數(shù)確定了存放在集合中的對象類型。19CException的派生類如下。CNotSupportedException:不支持服務(wù)異常CMemoryException:記憶體異常CFileException:檔異常CResourceException:資源異常COleException:OLE異常CArchiveException:檔案異常CDaoException:基於DAO的資料庫類異常CDBException:資料庫類異常CUserException:終端用戶操作異常20產(chǎn)生異常的原因描述將儲存在異常對象的m_cause數(shù)據(jù)成員中。例如CArchiveException類的m_cause數(shù)據(jù)成員的可能值如下:badClass:不能讀錯誤對象類型中的內(nèi)容badIndex:無效檔格式badSchema:無效對象版本endOfFile:到達檔尾Generic:不明異常None:無異常readOnly:試圖向只讀檔進行寫操作writeOnly:試圖向只寫檔進行讀操作218.2.6OLE類
對象連接與嵌入子層次結(jié)構(gòu)為支持OLE提供了9個類普通類COleDocuemntCOleItemCOleException客戶類COleClientDocCOleClientItem伺服器類COleServerCOleTemplateCOleServerDocCOleServerItemMFC中提供了對OLE技術(shù)體系的全方位的支持。它提供了OLE基類、可視編輯容器類、可視編輯伺服器類、數(shù)據(jù)傳送類、OLE對話類和雜項類等六種類來封裝OLE技術(shù)。228.2.7ODBC資料庫類
資料庫類CDatabase:封裝對數(shù)據(jù)源的連接,通過此連接應(yīng)用程式可在該數(shù)據(jù)源上進行操作CRecordset:封裝了從數(shù)據(jù)源選出的記錄這些類面向ODBC且封裝了ODBCAPI23CRecordView:由CFormView派生,該類將記錄集對象連接到顯示當(dāng)前記錄的字段值的一個表單視圖來簡化操作。CFieldExchange:提供上下文資訊,支持在字段數(shù)據(jù)成員、記錄對象的參數(shù)數(shù)據(jù)成員及數(shù)據(jù)源上的對應(yīng)列表之間進行數(shù)據(jù)交換CLongBinary:封裝一存儲句柄,用於存儲二進位的對象,例如位圖等CDBException:記錄數(shù)據(jù)存取處理過程中的失敗產(chǎn)生的異常常見資料庫類248.3MFC中全局函數(shù)和全局變數(shù)以Afx為首碼的函數(shù)(資料庫類函數(shù)和DDX函數(shù)除外)和變數(shù),在目前的版本中,都表示全局函數(shù)或全局變數(shù)。
AfxAbort: 無條件終止一個應(yī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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 26《好的故事》說課稿-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 1場景歌說課稿-2024-2025學(xué)年統(tǒng)編版語文二年級上冊
- 2024年秋一年級道德與法治下冊 第二單元 我和大自然 5 風(fēng)兒輕輕吹說課稿 新人教版
- 18古詩三首浪淘沙(其一)說課稿-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 8 設(shè)計制作小車(二) 說課稿-2024-2025學(xué)年科學(xué)四年級上冊教科版
- 23《月光曲》說課稿-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 1 24時計時法(說課稿)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版001
- 2023九年級道德與法治上冊 第三單元 文明與家園 第五課 守望精神家園第2框 凝聚價值追求說課稿 新人教版
- 2025北京市飼料采購合同新
- 2025建造船舶所要用到的合同
- 農(nóng)產(chǎn)品貯運與加工考試題(附答案)
- 學(xué)校財務(wù)年終工作總結(jié)4
- 2025年人民教育出版社有限公司招聘筆試參考題庫含答案解析
- 康復(fù)醫(yī)學(xué)治療技術(shù)(士)復(fù)習(xí)題及答案
- 《血管性血友病》課件
- 2025年汽車加氣站作業(yè)人員安全全國考試題庫(含答案)
- 2024年司法考試完整真題及答案
- 高三日語一輪復(fù)習(xí)日語助詞「に」和「を」的全部用法課件
- 2024年山東省高考政治試卷真題(含答案逐題解析)
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
- 2024-2025學(xué)年人教版七年級數(shù)學(xué)上冊期末達標(biāo)測試卷(含答案)
評論
0/150
提交評論