第八講應用程序設計基礎v_第1頁
第八講應用程序設計基礎v_第2頁
第八講應用程序設計基礎v_第3頁
第八講應用程序設計基礎v_第4頁
第八講應用程序設計基礎v_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第八講第八講 MFC MFC應用程序設計應用程序設計( (教材教材10-1110-11章章) )中國地質大學中國地質大學(武漢武漢)計算機學院計算機學院何珍文何珍文面向對象程序設計A2本章主要內容本章主要內容lMFC概述概述lMFC類的組織結構及主要的類的簡介lMFC 中全局函數和全局變量l應用程序向導31. MFC概述 lMFC是用來編寫Windows應用程序的C+類集,該類集以層次結構組織起來,其中封裝了大部分Windows API函數和Windows控件,它所包含的功能涉及到整個Windows操作系統。lMFC不僅為用戶提供了 Windows圖形環境下應用程序的框架,而且還提供了創建應用

2、程序的組件。4MFCMFC還很好地保持了程序的向下兼容性還很好地保持了程序的向下兼容性是用來編是用來編寫寫WindowsWindows應用程序應用程序的的C+C+類集類集以層次結構組織以層次結構組織封裝了大部分封裝了大部分APIAPI函數函數提供了圖形環境下應用程序的框架提供了圖形環境下應用程序的框架提供了創建應用程序的組件提供了創建應用程序的組件提供了大量的基類供程序員根據不同的應用環境進行擴充提供了大量的基類供程序員根據不同的應用環境進行擴充允許在編程過程中自定義和擴展應用程序中的類允許在編程過程中自定義和擴展應用程序中的類較好的移植性,較好的移植性,可移植于眾多的平臺可移植于眾多的平臺M

3、FCMFC5MFC1.0 & MS C/C+7.0MFC1.0 & MS C/C+7.0應用程序中非圖形部分的類應用程序中非圖形部分的類GUIGUI功能的功能的WindowsWindows相關類相關類MFC2.0 & MS VC+1.0MFC2.0 & MS VC+1.0在在1.01.0基礎上增添了一些應用程序基礎上增添了一些應用程序MFC3.0 & VC+2.0MFC3.0 & VC+2.0增添了對開發增添了對開發3232位應用程序的支持位應用程序的支持MFC2.0 & MS VC+1.5MFC2.0 & MS VC+1.5添加

4、了添加了ODBCODBC類,并且還支持類,并且還支持OLEOLE的性能的性能MFC4.0MFC4.0包含了在包含了在Win95Win95和和NTNT中大多數新的公共控件和中大多數新的公共控件和DAODAO、MAPIMAPI增強了對數據庫應用程序的支持增強了對數據庫應用程序的支持利用利用DAODAO類通過編程語言來訪問、操縱和管理數據庫類通過編程語言來訪問、操縱和管理數據庫對對InternetInternet也提供了強有力的支持也提供了強有力的支持MFC4.21MFC4.216MFC5.0增強了對增強了對數據庫數據庫和和Internet的支持,可使用的支持,可使用ODBC類和類和ODBC驅動程序

5、來訪問提供驅動程序來訪問提供ODBC支持的數支持的數據庫中的數據;可以通過數據訪問對象(據庫中的數據;可以通過數據訪問對象(DAO)類通)類通過編程語言來訪問和操縱數據庫中的數據并管理數過編程語言來訪問和操縱數據庫中的數據并管理數據庫、數據庫對象與結構。這些支持主要包括以下據庫、數據庫對象與結構。這些支持主要包括以下幾個部分:幾個部分:-7Win32 Internet API使使Internet成為應用程序的一成為應用程序的一部分并簡化了對部分并簡化了對Internet服務的訪問服務的訪問Activex文檔可以顯示在整個文檔可以顯示在整個Web瀏覽器或瀏覽器或OLE容器的整個客戶窗口中容器的整

6、個客戶窗口中 Activex控件可以用在控件可以用在Internet和桌面應用程序和桌面應用程序中可以使用中可以使用CHttpServer、CHttpFilter、ChttpServerContext和和CHttpFilterContext類來建立類來建立動態動態DLL,以便為,以便為Web頁面增添功能頁面增添功能8MFC6.0中引進了新的功能:l提出了活動文檔容器來管理不同類型的文檔,并通過引入類COleDocObjectItem來加以實現。同時在應用程序向導中也加入了對這一新特性的支持。l加入了對動態HTML技術的支持,通過引入一個新類CHtmlView,使程序員開發的應用程序可以瀏覽并顯

7、示用動態HTML技術開發的HTML文檔。類CHtmlView中封裝了許多瀏覽器的特征,包括瀏覽器在歷史記錄、書簽和安全等方面的特征都被封裝進了類CHtmlView。l擴展了對公共控件的支持,如時間控鍵、IP地址控鍵和日期控鍵等。91011122. MFC類的組織結構及主要的類的簡介 (1)MFC類的組織結構(2)根類-CObject (3)應用程序體系結構類(4)可視對象類(5)通用類(6)OLE類(7)數據庫類(8)MFC 中全局函數和全局變量132.1 MFC類的組織結構 MFC庫中的類按層次關系劃分類:庫中的類按層次關系劃分類:(1)根類:)根類:CObject(2)應用程序體系結構類)

8、應用程序體系結構類(3)窗口、對話框和控件類)窗口、對話框和控件類(4)繪圖和打印類)繪圖和打印類(5)簡單數據類型類)簡單數據類型類(6)數組、列表和映射類)數組、列表和映射類(7)文件和數據庫類)文件和數據庫類(8)Internet和網絡工作類和網絡工作類(9)OLE類類(10)調試和異常類)調試和異常類142.2 根類-CObject MFCMFC中多數類和用戶自定中多數類和用戶自定義子類的根類,是抽象義子類的根類,是抽象基類。它提供了許多編基類。它提供了許多編程所需的公共操作。程所需的公共操作。對象的建立對象的建立對象的刪除對象的刪除運行時信息運行時信息對象診斷輸出對象診斷輸出串行化支

9、持串行化支持應用程序和線程支持類應用程序和線程支持類命令相關類命令相關類文檔類文檔類文檔模板類文檔模板類視類視類( (體系結構體系結構) )框架窗口框架窗口( (體系結構體系結構) )應用程序體應用程序體系結構類系結構類窗口、對話窗口、對話框和控件類框和控件類框架窗口類(窗口)框架窗口類(窗口)視類(窗口)視類(窗口)對話框類對話框類控件條類控件條類繪圖和繪圖和打印類打印類輸出輸出( (設備相關設備相關) )類類繪圖工具類繪圖工具類簡單數據類型類簡單數據類型類數組、列表和映射類數組、列表和映射類數組類數組類列表類列表類映射類映射類15文件和數據庫類文件和數據庫類文件文件I/OI/O類類DAOD

10、AO類類ODBCODBC類類InternetInternet和網絡工作類和網絡工作類ISAPIISAPI類類Windows SocketWindows Socket類類Win32 InternetWin32 Internet類類OLEOLE類類OLEOLE容器類容器類OLEOLE服務器類服務器類OLEOLE拖放和數據傳輸類拖放和數據傳輸類OLEOLE普通對話框類普通對話框類OLEOLE動畫類動畫類OLEOLE動畫類動畫類OLEOLE控件類控件類活動文檔類活動文檔類其他文檔類其他文檔類調試和異常類調試和異常類調試支持類調試支持類異常類異常類16 2.3應用程序體系結構類 1 1命令相關類:命令相

11、關類:CCmdTargetCCmdTarget類類該類是該類是CObjectCObject的子類,它是的子類,它是MFCMFC庫中所有具有消息映射屬性的庫中所有具有消息映射屬性的基類。消息映射規定了當一對象接收到消息命令時,應調用哪基類。消息映射規定了當一對象接收到消息命令時,應調用哪一個函數對該消息進行處理一個函數對該消息進行處理應用程序體應用程序體系結構類系結構類1.1.命令相關類命令相關類2.2.窗口應用程序類窗口應用程序類3.3.文檔文檔/ /視類視類4.4.線程基類線程基類編寫程序的任務是編寫程序的任務是填充框架,添加應填充框架,添加應用程序專用的功能用程序專用的功能用于構造應用程用

12、于構造應用程序框架的結構,序框架的結構,提供多數應用程提供多數應用程序公用的功能序公用的功能2 2線程基類:線程基類:CWinThreadCWinThread類類所有線程的基類,可直接使用。所有線程的基類,可直接使用。CWinAppCWinApp類就是從類就是從CWinThreadCWinThread類中派生出來的類中派生出來的174 4文檔文檔/ /視類視類 文檔對象由文檔模板對象創建,管理應用程序的文檔對象由文檔模板對象創建,管理應用程序的數據。視對象表示一個窗口的客戶區,顯示文檔數據數據。視對象表示一個窗口的客戶區,顯示文檔數據并允許用戶與之交互并允許用戶與之交互3 3窗口應用程序類:窗

13、口應用程序類:CWinAppCWinApp類類 每個應用程序有且只有一個應用程序對象,在運每個應用程序有且只有一個應用程序對象,在運行程序中該對象與其它對象相互協調,該對象從行程序中該對象與其它對象相互協調,該對象從CWinAppCWinApp類中派生出來。類中派生出來。CWinAppCWinApp類封裝了初始化、運類封裝了初始化、運行、終止應用程序的代碼。行、終止應用程序的代碼。18 在CWinApp中定義的部分函數的功能有時也可以通過MFC提供的全局函數來實現,這些全局函數一般都以Afx為前綴。19例如:調用AfxMessageBox函數將彈出一個消息框,其功能與CWinApp中的DoMe

14、ssageBox相同。AfxMessageBox原型如下:int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 )202.4 可視對象類 2 2視類:視類:CViewCView類類該類表示框架窗口的客戶區和顯示文檔數據并接收輸入的客戶區該類表示框架窗口的客戶區和顯示文檔數據并接收輸入的客戶區,其派生類主要有如下幾種:,其派生類主要有如下幾種:lCScrollViewCScrollView:具有滾動功能的視的基類:具有滾動功能的視的基類lCFormViewCFormView:其布局在對話資源中定義的滾動

15、視:其布局在對話資源中定義的滾動視lCEditViewCEditView:具有文本編輯、查找、替換和滾動功能的視:具有文本編輯、查找、替換和滾動功能的視1 1窗口類:窗口類:CWndCWnd類類CWndCWnd提供了提供了MFCMFC中所有窗中所有窗口類的基本功能,是口類的基本功能,是CCmdTargetCCmdTarget類的子類類的子類創建創建WindowsWindows窗口要分兩窗口要分兩步進行步進行引入構造函數,構引入構造函數,構造一個造一個CWndCWnd對象對象調用調用CreateCreate建立建立WindowsWindows窗窗口,并將它連到口,并將它連到CWndCWnd對象上

16、對象上213 3菜單類:菜單類:CMenuCMenu類類該類是該類是CObjectCObject類的子類,用于管理菜單。它是一個類的子類,用于管理菜單。它是一個Windows HMenuWindows HMenu的封裝,提供了與窗口有關的菜單資的封裝,提供了與窗口有關的菜單資源建立、修改、跟蹤及刪除的成員函數。源建立、修改、跟蹤及刪除的成員函數。4 4對話框類:對話框類:CDialogCDialog類類由于對話框是一個特殊的窗口,所以該類是從由于對話框是一個特殊的窗口,所以該類是從CWndCWnd類類中派生出來的。對話框子層次結構包括通用對話框類中派生出來的。對話框子層次結構包括通用對話框類C

17、DialogCDialog以及支持文件選擇、顏色選擇、字體選擇、以及支持文件選擇、顏色選擇、字體選擇、打印、替換文本的公共對話框子類。打印、替換文本的公共對話框子類。225 5控件類控件類 控件子層次結構包括若干類,使用這些類可建立靜態文本、控件子層次結構包括若干類,使用這些類可建立靜態文本、命令按鈕、位圖按鈕、列表框、組合框、滾動條、編輯框等。命令按鈕、位圖按鈕、列表框、組合框、滾動條、編輯框等。這些直觀控件為這些直觀控件為WindowsWindows應用程序提供了各種輸入和顯示界面。應用程序提供了各種輸入和顯示界面。6 6控件條類:控件條類:CControlBarCControlBar類類

18、 控件條子層次結構為工具條、狀態條、對話條和分割窗口控件條子層次結構為工具條、狀態條、對話條和分割窗口建立模型。該類是建立模型。該類是CToolBarCToolBar、CStatusBarCStatusBar、CDialogBarCDialogBar的基的基類,負責管理工具條、狀態條、對話條的一些成員函數。控件類,負責管理工具條、狀態條、對話條的一些成員函數。控件條指的是連接在主窗口框架的頂部或底部的小窗口條指的是連接在主窗口框架的頂部或底部的小窗口237 7繪畫對象類:繪畫對象類:CGdiObjectCGdiObject類類圖形繪畫對象子層次結構以圖形繪畫對象子層次結構以CGdiObject

19、CGdiObject類為根類,可用于建類為根類,可用于建立繪畫對象模型,如畫筆、刷子、字體、位圖、調色板等。立繪畫對象模型,如畫筆、刷子、字體、位圖、調色板等。8 8設備描述表類:設備描述表類:CDCCDC類類該類及其子類支持設備描述表對象,是該類及其子類支持設備描述表對象,是CObjectCObject類的子類。類的子類。CDCCDC類是一個較大的類,包括許多成員函數,如映射函數、類是一個較大的類,包括許多成員函數,如映射函數、繪畫工具函數、區域函數等,通過繪畫工具函數、區域函數等,通過CDCCDC對象的成員函數可以對象的成員函數可以完成所有的繪畫工作完成所有的繪畫工作242.5 通用類 此

20、類提供了許多通用服務,例如文件此類提供了許多通用服務,例如文件I/OI/O、診斷和異常處理等,、診斷和異常處理等,此外還包括如數組和列表等存放數據集的類此外還包括如數組和列表等存放數據集的類1 1文件類:文件類:CFileCFile類和類和CArchiveCArchive類類用以編寫輸入輸出處理函數用以編寫輸入輸出處理函數2 2異常類:異常類:CExceptionCException類類是所有異常情況的基類。不能直接建立是所有異常情況的基類。不能直接建立CExceptionCException對象,只能建立派生類的對對象,只能建立派生類的對象,用派生類來捕獲指定的異常情況象,用派生類來捕獲指定

21、的異常情況3 3模板收集類模板收集類這些類可以將多種對象存放到數組、列表和這些類可以將多種對象存放到數組、列表和“ 映射映射”中。但這些收集類是模板,它們的參數確定了存放在中。但這些收集類是模板,它們的參數確定了存放在集合中的對象類型。集合中的對象類型。25CException的派生類如下:lCNotSupportedException:不支持服務異常lCMemoryException:內存異常lCFileException:文件異常lCResourceException:資源異常lCOleException:OLE異常lCArchiveException:檔案異常lCDaoException

22、:基于DAO的數據庫類異常lCDBException:數據庫類異常lCUserException:終端用戶操作異常26 產生異常的原因描述將儲存在異常對象的m_cause數據成員中。例如CArchiveException 類的m_cause數據成員的可能值如下:lbadClass:不能讀錯誤對象類型中的內容lbadIndex:無效文件格式lbadSchema:無效對象版本lendOfFile:到達文件尾lGeneric:不明異常lNone:無異常lreadOnly:試圖向只讀文件進行寫操作lwriteOnly:試圖向只寫文件進行讀操作272.6 OLE類 對象連接與嵌入子對象連接與嵌入子層次結

23、構為支持層次結構為支持OLEOLE提供了提供了9 9個類個類普通類普通類COleDocuemntCOleDocuemntCOleItemCOleItemCOleExceptionCOleException客戶類客戶類COleClientDocCOleClientDocCOleClientItemCOleClientItem服務器類服務器類COleServerCOleServerCOleTemplateCOleTemplateCOleServerDocCOleServerDocCOleServerItemCOleServerItemMFCMFC中提供了對中提供了對OLEOLE技術體系的全方位的支持。技術體系的全方位的支持。它提供了它提供了OLEOLE基類、可視編輯容器類、可視編輯基類、可視編輯容器類、可視編輯服務器類、數據傳送類、服務器類、數據傳送類、OLEOLE對話類和雜項類等對話類和雜項類等六種類來封裝六種類來封裝OLEOLE技術。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論