1 / 22
文档名称:

C++程序设计-MFC简介2.ppt

格式:ppt   页数:22
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C++程序设计-MFC简介2.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

C++程序设计-MFC简介2.ppt

文档介绍

文档介绍:C++程序设计教程
MFC简介2
执行期类型识别
1) CRuntimeClass
struct CRuntimeClass {
LPCSTR m_lpszClassName;
CRuntimeClass* m_pBaseClass;
static CRuntimeClass* pFirstClass;
CRuntimeClass* m_pNextClass;
};
CObject
m_pBaseClass
m_pNextClass
CCmdTarget
m_pBaseClass
m_pNextClass
CWnd
m_pBaseClass
m_pNextClass
NULL
串行化
CArchive
void CMyDoc::Serialize(CArchive& ar)
{
if ( () )
ar << (WORD)m_sizeDoc;
else // loading
ar >> (WORD&)m_sizeDoc;
}
Mapping 消息映射
1) DECLARE_MESSAGE_MAP()
2) BEGIN_MESSAGE_MAP()
MAND(……)
END_MESSAGE_MAP()
3) CWinApp
InitInstance()
Run()
ExitInstance()
4. MFC类的层次结构
class CObject
mdTarget : public CObject
class CWinThread : mdTarget
class CWinApp : public CWinThread
class CMyWinApp : public CWinApp
class CWnd : mdTarget
class CView : public CWnd
class CMyView : public CView
class CFrameWnd : public CWnd
class CMainFrame : public CFrameWnd
class CDocument : mdTarget
class CMyDoc : public CDocument
1. CObject
1) 一般诊断 AssertValid
2) 运行期识别 RuntimeClass
3) 串行化 Serialize
4) 动态创建 DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC
2. CCmdTarget : public CObject
1) 消息发送
BEGIN_MESSAGE_MAP(CMyView,Cview)
MAND(ID_FILE_OPEN,OnFileOpen)
END_MESSAGE_MAP()
2) 等待光标
3) 支持自动化
3. CWinApp : public CWinThread
1) 获取应用程序的信息。
2) 支持注册表 RegistryKey
3) 支持文档 Document Template
4. CWnd : mdTarget
1) 注册新窗口类。
2) 创建和使用窗口 Create, CreateEx;
5. CFrameWnd : public CWnd
标题栏、系统菜单、边框、最小/最大化
6. CView : public CWnd
1) 显示/打印的处理 OnDraw()
2) 与用户进行交互操作(鼠标/键盘)
OnLButtonDown/OnLButtonUp
OnKeyDown ……
3) 系统重画 Invalidate(); UpdateWindow()
7. CDocument : mdTarget
1) 文档的输入/输出。OpenDocument/SaveDocument
2) 数据的保存和更新;
3) View的维护。
GDI基础知识
GDI(图形设备接口)
GDI是一个可执行程序
GDI是一个抽象的绘图程序接口,程序通过它访问图形设备驱动
DC(device context )(设备上下文)是绘图图形函数的集合。
CDC类包含了绘图所需要的所有成员函数。
CDC类的派生类
派生类名称
说明
CClientDC
提供对窗口客户区域的图形访问
CMetaFileDC
创建独立于设备的图元文件
CPaintDC
在CMainFrame中的OnPaint()内使用的DC
CWindowDC
在整个窗口画图的DC