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