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 阅读(1207)
评论(0) 编辑 收藏 引用 所属分类:
windows