資源描述:
《清華大學(xué)c++和vc++課件vc_3_10a》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、面向?qū)ο笈c可視化程序設(shè)計(jì)--VisualC++編程主講教師:唐龍教授(計(jì)算機(jī)科學(xué)與技術(shù)系)黃維通博士(計(jì)算機(jī)與信息管理中心)清華大學(xué)2001年10月6/18/20211第十章MFC的基礎(chǔ)知識(shí)6/18/20212內(nèi)容提要MFC概述MFC類的組織結(jié)構(gòu)及主要的類MFC中全局函數(shù)與全局變量應(yīng)用程序向?qū)Ъ捌鋺?yīng)用6/18/20213§10.1.MFC概述6/18/202141.VC++編程的實(shí)現(xiàn)方法利用WindowsAPI函數(shù)編程,用戶需要編寫大量的代碼,工作量大。利用MFC和向?qū)?Wizard)實(shí)現(xiàn)可視化編程,其步驟如下:用ClassWizard生成應(yīng)用程序的基本框架;用ClassW
2、izard建立類、消息處理、數(shù)據(jù)處理函數(shù)或定義控件的屬性、事件和方法:把各應(yīng)用程序所要求的功能添加到類中。6/18/202152.MFC及其特點(diǎn)MFC是用來(lái)編寫Windows應(yīng)用程序的C++類集以層次結(jié)構(gòu)組織封裝了大部分API函數(shù)提供了圖形環(huán)境下應(yīng)用程序的框架提供了創(chuàng)建應(yīng)用程序的組件提供大量的基類便于不同的應(yīng)用環(huán)境進(jìn)行擴(kuò)充允許自定義和擴(kuò)展應(yīng)用程序中的類較好的移植性,可移植于眾多的平臺(tái)很好地保持了程序的向下兼容性6/18/202163.版本升級(jí)與功能的增強(qiáng)MFC1.0&C/C++7.0提供應(yīng)用程序中非圖形部分的類GUI功能的Windows相關(guān)類;MFC2.0&VC++1.0增添一
3、些應(yīng)用程序;MFC2.0&VC++1.5加了ODBC類,并支持OLE性能;MFC3.0&VC++2.0支持開發(fā)32位應(yīng)用程序;MFC4.0包含了在Win95和NT中大多數(shù)新的公共控件和DAO、MAPI;MFC4.21增強(qiáng)了對(duì)數(shù)據(jù)庫(kù)應(yīng)用程序的支持,利用DAO類通過編程語(yǔ)言來(lái)訪問、操縱和管理數(shù)據(jù)庫(kù),對(duì)Internet也提供了強(qiáng)有力的支持。(請(qǐng)參閱教材263頁(yè))6/18/20217§10.2.MFC類的組織結(jié)構(gòu)及主要的類(請(qǐng)參閱教材263-269頁(yè))6/18/202181.MFC類的組織結(jié)構(gòu)從根類Cobject派生出許許多多子類,以層次結(jié)構(gòu)組織起來(lái),主要有以下若干類:應(yīng)用程序體系結(jié)
4、構(gòu)類;窗口、對(duì)話框和控件類;繪圖和打印類;簡(jiǎn)單數(shù)據(jù)類型類;數(shù)組、列表和映射類;文件和數(shù)據(jù)庫(kù)類;Internet和網(wǎng)絡(luò)工作類;OLE類;調(diào)試和異常類6/18/202191.MFC類的組織結(jié)構(gòu)(續(xù))應(yīng)用程序體系結(jié)構(gòu)類;應(yīng)用程序和線程支持類命令相關(guān)類文檔類文檔模板類視類(體系結(jié)構(gòu))框架窗口(體系結(jié)構(gòu))窗口、對(duì)話框和控件類框架窗口類(窗口)視類(窗口)對(duì)話框類控件條類6/18/2021101.MFC類的組織結(jié)構(gòu)(續(xù))繪圖和打印類輸出(設(shè)備相關(guān))類繪圖工具類數(shù)組、列表和映射類數(shù)組類列表類映射類文件和數(shù)據(jù)庫(kù)類文件I/O類DAO類ODBC類6/18/2021111.MFC類的組織結(jié)構(gòu)(續(xù))I
5、nternet和網(wǎng)絡(luò)工作類LSAPI類WindowsSocket類Win32Internet類調(diào)試和異常類調(diào)試支持類異常類6/18/2021121.MFC類的組織結(jié)構(gòu)(續(xù))OLE(ObjectLinkingandEmloadding)類OLE容器類OLE服務(wù)器類OLE拖放和數(shù)據(jù)傳輸類OLE普通對(duì)話框類OLE動(dòng)畫類OLE動(dòng)畫類OLE控件類活動(dòng)文檔類其他文檔類6/18/2021132.根類根類Cobject的多數(shù)是抽象基類。提供了許多編程所需的公共操作:對(duì)象的建立;對(duì)象的刪除;串行化支持,有兩重要成員函數(shù):Serialize和IsSerialize;運(yùn)行時(shí)信息,有兩重要成員函數(shù):I
6、sKindof和CRuntimeClass;對(duì)象診斷輸出。6/18/2021143.應(yīng)用程序體系結(jié)構(gòu)類用于構(gòu)造應(yīng)用程序框架,提供多數(shù)應(yīng)用程序公用的功能.編寫程序的任務(wù)是填充框架,添加應(yīng)用程序?qū)S玫墓δ?;其中較重要類:命令相關(guān)類;窗口應(yīng)用程序類;文檔/視類;線程基類;…...6/18/202115CObject的子類;MFC庫(kù)中所有具有消息映射屬性的基類。消息映射規(guī)定了當(dāng)一對(duì)象接收到消息命令時(shí),應(yīng)調(diào)用哪一個(gè)函數(shù)對(duì)該消息進(jìn)行處理。(2)窗口應(yīng)用程序類:CWinApp類每個(gè)應(yīng)用程序有且僅有一個(gè)從CWinApp類中派生的對(duì)象。在運(yùn)行程序中該對(duì)象與其它對(duì)象相互協(xié)調(diào);CWinApp類封裝了
7、初始化、運(yùn)行、終止應(yīng)用程序的代碼。(1)命令相關(guān)類:CCmdTarget類6/18/202116(3)文檔/視類文檔對(duì)象由文檔模板對(duì)象創(chuàng)建,管理應(yīng)用程序的數(shù)據(jù);視對(duì)象表示一個(gè)窗口的客戶區(qū),顯示文檔數(shù)據(jù)并允許用戶與之交互。(4)線程基類:CWinThread類所有線程的基類,可直接使用。CWinApp類就是從CWinThread類中派生出來(lái)的。6/18/2021174.可視對(duì)象類窗口類——CWnd類視類——CView類菜單類——CMenu類對(duì)話框類——CDialog類控件類控件條類——CCon