2009-9-1
=======================
《深入解析MFC》筆記 1. 概念總結(jié)
=======================
縮寫:
API: Application Programming Interface
DLL: Dynamic Link Library
GUI: Graphics User Interface
MDI: Multiple Document Interface
MFC: Microsoft Function Class
OLE: Object Linking&Embedded
OWL: Object Windows Library
SDK: Software Development Kit
SDI: Single Document Interface
UI: User Interface
WinApp: Windows Application
control 控件
notification 通知信息(發(fā)生于控件)
preemptive 強(qiáng)制性、搶占式、優(yōu)先級(jí)
process 進(jìn)程
Constructor Destructor Encapsulation封裝 Inheritance繼承 Polymorphism多態(tài)
數(shù)據(jù)類型:
BSTR 32-bit 字符指針
BYTE 8-bit 整數(shù),未帶正負(fù)號(hào)
COLORREF 32-bit 數(shù)值,代表一個(gè)顏色值
DWORD 32-bit 整數(shù),未帶正負(fù)號(hào)
LONG 32-bit 整數(shù),帶正負(fù)號(hào)
LPARAM 32-bit 數(shù)值,作為窗口函數(shù)或 callback 函數(shù)的一個(gè)參數(shù)。
LPCSTR 32-bit 指針,指向一個(gè)常數(shù)字符串
LPSTR 32-bit 指針,指向一個(gè)字符串
LPCTSTR 32-bit 指針,指向一個(gè)常數(shù)字符串。此字符串可移植到 Unicode 和DBCS(雙字節(jié)字集)
LPTSTR 32-bit 指針,指向一個(gè)字符串。此字符串可移植到Unicode和DBCS
LPVOID 32-bit 指針,指向一個(gè)未指定類型的數(shù)據(jù)
LPRESULT 32-bit 數(shù)值,作為窗口函數(shù)或者 callback 函數(shù)的返回值
WNDPROC 32-bit 指針,指向一個(gè)窗口函數(shù)
WORD 16-bit 整數(shù),未帶正負(fù)號(hào)。
WPARAM 窗口函數(shù)的callback函數(shù)的一個(gè)參數(shù),win32中是32bits
WINAPI類
任何從CCmdTarget派生的類都有一個(gè)與之相關(guān)聯(lián)的消息映射表,它將命令傳遞給從CCmdTarget派生的類。
CCmdUI類提供了更新用戶界面對(duì)象(如菜單或復(fù)選框控件)狀態(tài)的函數(shù)。在單擊菜單之后以及菜單項(xiàng)顯示之前,MFC會(huì)給應(yīng)用程序中的命令目標(biāo)發(fā)送一個(gè)命令更新消息。如果在命令目標(biāo)對(duì)象的消息映射表中有這個(gè)更新消息的內(nèi)容,MFC會(huì)給CCmdUI對(duì)象傳遞一個(gè)代表菜單項(xiàng)的指針,也就是命令目標(biāo)對(duì)象所更新的內(nèi)容。
CWinThread代表在MFC程序內(nèi)執(zhí)行的線程。
同步對(duì)象類
CSyncObject ——同步對(duì)象類的基類。
CCriticalSection——一個(gè)同步類,它只允許單個(gè)進(jìn)程中的一個(gè)線程訪問一個(gè)對(duì)象。
CSemaphore——一個(gè)同步類,它只允許一個(gè)對(duì)象有一個(gè)到某個(gè)指定的之間個(gè)數(shù)的同步訪問。
CMutex——一個(gè)同步類,它只允許任何數(shù)目進(jìn)程中的一個(gè)線程訪問對(duì)象。
CEvent——一個(gè)同步類,當(dāng)某個(gè)時(shí)間發(fā)生時(shí),它會(huì)通知某個(gè)應(yīng)用程序。
CSingleLock——線程安全的類的成員函數(shù)中用來鎖住一個(gè)同步對(duì)象的對(duì)象。
CMultiLock——線程安全的類的成員函數(shù)中用來鎖住一個(gè)或更多個(gè)同步對(duì)象的對(duì)象,鎖住的對(duì)象來自一個(gè)同步對(duì)象數(shù)組。
框架窗口
CFrameWnd就是SDI應(yīng)用程序的主窗口的基類。
CMDIFrameWnd為MDI應(yīng)用程序提供了主框架窗口,CMDIChildWnd為MDI應(yīng)用程序提供了子窗口。
對(duì)話框
CFileDialog——從某個(gè)目錄下選定一個(gè)文件
CColorDialog——選擇一個(gè)指定的顏色
CFontDialog——選擇一種字體。
CPrintDialog——處理打印機(jī)的安裝和打印
CFindReplaceDialog——為查找和替換選擇文本
對(duì)話框數(shù)據(jù)的交換和驗(yàn)證(DDX/DDV)通過CDataExchange類實(shí)現(xiàn)。
屬性頁:CPropertySheet 和 CPropertyPage
CAnimateCtrl——播放動(dòng)畫控件
CDragListBox——CListBox的派生類,你可以在這個(gè)列表框中拖動(dòng)和去掉選項(xiàng)。
CHeaderCtrl——和CListCtrl一起來顯示柱狀信息
CHotKeyCtrl——為從用戶獲得鍵序列提供接口(Alt-Backspace-Delete).
CImageList——一個(gè)CObject的派生類,它為你維護(hù)圖像集合。
CListCtrl——顯示一個(gè)鏈表項(xiàng)的圖形鏈表(類似Explorer)。
CProgressCtrl——顯示一個(gè)進(jìn)度條
CRichEditCtrl——一個(gè)豐富的編輯控件,它理解一些RTF格式的概念,而且允許使用多字體,多顏色等。
CSliderCtrl——一個(gè)在某個(gè)值范圍內(nèi)進(jìn)行選擇的滾動(dòng)條。
CSpinButtonCtrl——微調(diào)控制項(xiàng)。
CStatusBarCtrl——狀態(tài)欄
CTabCtrl——屬性頁控件
CToolBarCtrl——實(shí)現(xiàn)一個(gè)工具欄
CToolTipCtrl——提供工具提示
CTreeCtrl——一個(gè)類似Explorer的樹控件
GDI支持和繪畫對(duì)象
CDC類表示設(shè)備環(huán)境。
· CPaintDC——封裝了處理WM_PAINT消息時(shí)所要使用的BeginPaint()和EndPaint()兩個(gè)調(diào)用。
· CWindowDC——封裝了與整個(gè)窗口相關(guān)的設(shè)備環(huán)境
· CClientDC——封裝了與窗口中客戶區(qū)有關(guān)的設(shè)備環(huán)境
· CMetaFileDC——為元文件(metafile)封裝了設(shè)備環(huán)境。
· CFont、CPen、CBrush、CBitmap、CPalette和CRgn均從CGdiObject類中派生。
應(yīng)用程序框架類
文檔視圖結(jié)構(gòu)
· CDocTemplage、CSingleDocTemplate和CMultiDocTemplage——文檔模板是將文檔和其視圖粘合在一起的粘合劑
· CDocument——處理應(yīng)用程序匯總數(shù)據(jù)的類。
· CView——代表在屏幕上看到的窗口的客戶區(qū)。
控件視圖
· CEditView
· CListView
· CRichEditView
· CTreeView
分割窗口(Splitter Window)
兩種分割窗口:靜態(tài)、動(dòng)態(tài)
靜態(tài):預(yù)定義窗格數(shù)目,數(shù)目和排列不能修改,每個(gè)窗格可以顯示不同類型的視圖。
動(dòng)態(tài):每個(gè)窗格必須顯示同一類型的視圖。
操作系統(tǒng)擴(kuò)展
OLE支持:OLE文檔
創(chuàng)建一個(gè)支持OLE復(fù)合文檔的文檔時(shí)需要使用的類。
· CDocItem——MFC的COleClientItem和COleServerItem類的基類。
· COleServerItem——表示與嵌入或鏈接的OLE項(xiàng)的鏈接的服務(wù)器端。
· COleClientItem——表示與嵌入或鏈接的OLE項(xiàng)的連接的容器(container)端。
· COleDocument——是MFC對(duì)復(fù)合文檔支持的核心。除維護(hù)應(yīng)用程序的本地?cái)?shù)據(jù)之外,還維護(hù)了一個(gè)CDocItem對(duì)象鏈表
· COleLinkingDoc——包含一些鏈接,這些鏈接指向嵌入在其他地方的項(xiàng)。
· COleServerDoc——由符合文檔中合體的服務(wù)端應(yīng)用程序使用。
· COleIPFrameWnd——為成為復(fù)合文檔服務(wù)器,應(yīng)用程序有兩種不同的框架窗口 1、通常的框架窗口 2、應(yīng)用程序在恰當(dāng)位置顯示時(shí)所使用的框架窗口(用戶調(diào)用一個(gè)復(fù)合文檔內(nèi)部的可視化編輯操作時(shí))。COleIPFrameWnd封裝了符合文檔服務(wù)器的部分功能。
OLE支持:類廠(class factory)
每個(gè)要對(duì)外暴露借口的OLE對(duì)象都要有一個(gè)類廠。類廠位于OLE服務(wù)器中,會(huì)創(chuàng)建一個(gè)OLE對(duì)象的實(shí)例來代表服務(wù)器。
· COleObjectFactory——為需要類廠,但又不是面向文檔的MFC應(yīng)用程序?qū)崿F(xiàn)類廠。
· COleTemplateServer——從COleObjectFactory直接派生出來的類,為面向文檔的、能使用OLE的MFC應(yīng)用程序?qū)崿F(xiàn)類廠。
OLE支持:自動(dòng)化
OLE支持:統(tǒng)一數(shù)據(jù)傳輸
OLE數(shù)據(jù)傳輸由任何實(shí)現(xiàn)了IDataObject接口的對(duì)象完成。
· COleDataSource——完成初始化,可以用于剪貼板(clip-board)傳輸,也可以用于拖放(drag-and-drop)傳輸。
· COleDataObject——數(shù)據(jù)傳輸?shù)牧硪欢耍康牡兀ǔJ褂肅OleDataObject表示。
· COleDropSource——定制“拖放”操作時(shí)有用。
· COleDropTarget——每當(dāng)創(chuàng)建一個(gè)接受拖放數(shù)據(jù)的窗口感興趣時(shí),
OLE支持:OLE控件
· COleControl——從CWnd派生,是OLE控件的基類。
· COlePropertyPage——從Dialog派生,用于修改控件的屬性。
· COleControlModule——從CWinApp派生,是保持OLE空間的動(dòng)態(tài)鏈接庫(dynamic link library)的基類。負(fù)責(zé)執(zhí)行初始化和OLE控件特有的各種任務(wù)。
· COleObjectFactoryEx——擴(kuò)展了COleClassFactory。
· COleConnectionPoint——從CCmdTarget派生,代表到其他OLE對(duì)象的輸出接口,用于事件觸發(fā)和向容器發(fā)出修改通知。
· CPropExchange——同用于標(biāo)準(zhǔn)的DDX/DDV的CDataExchange類似,為屬性交換建立環(huán)境,并在控件與容器之間幫助交換屬性。
· CFontHolder——封裝了Windows的字體類。實(shí)現(xiàn)了OLE的IFont接口,用于Font的常備屬性 。
· CPictureHolder——實(shí)現(xiàn)了“圖像屬性”。以多態(tài)的方式封裝了一個(gè)位圖、圖標(biāo)或元文件。
ODBC支持
· CDatabase——封裝了對(duì)數(shù)據(jù)源的連接誒,通過它可以對(duì)數(shù)據(jù)源進(jìn)行操作。
· CRecordset——封裝從數(shù)據(jù)源中選出的記錄。記錄集允許從記錄到記錄的滾動(dòng),更新記錄,使用過濾器選擇記錄,排序。
· CFieldExchange——提供環(huán)境信息來支持RFX(Record Field Exchange,記錄域交換)。RFX會(huì)再記錄集對(duì)象的域數(shù)據(jù)成員以及參數(shù)數(shù)據(jù)成員與數(shù)據(jù)源的響應(yīng)的鏈表之間交換數(shù)據(jù)。
· CLongBinary——封裝了一個(gè)句柄,以便存儲(chǔ)大的二進(jìn)制對(duì)象。主要用于管理存儲(chǔ)于數(shù)據(jù)庫表中的大數(shù)據(jù)對(duì)象。
· CRecordView——提供一個(gè)連接到記錄集對(duì)象的窗體視圖。DDX機(jī)制負(fù)責(zé)在記錄集合記錄視圖的控件之間交換數(shù)據(jù)。
DAO支持(Data Access Object,數(shù)據(jù)訪問對(duì)象)
· CDaoWorkspace——管理命名的、有密碼保護(hù)的數(shù)據(jù)庫會(huì)話。
· CDaoDatabase——連接到某個(gè)數(shù)據(jù)庫上,可通過它訪問數(shù)據(jù)庫。
· CDaoRecordset——從數(shù)據(jù)源中選出的記錄集。
· CDaoRecordView——在控件中顯示數(shù)據(jù)庫記錄。
· CDaoQueryDef——一個(gè)查詢定義,通常存放在數(shù)據(jù)庫里。
· CDaoTableDef——一個(gè)基表(base table)或附加表(attached table)的存儲(chǔ)定義。
· CDaoException——DAO類產(chǎn)生的異常情況。
· CDaoFieldExchange——支持由DAO數(shù)據(jù)庫類使用的DAO記錄域交換例程。
posted on 2010-03-15 22:59
Euan 閱讀(1270)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
windows