创建一个单文档应用程序ppt课件
画笔
图2 MFC AppWizard的“Step 1”对话框
图2 MFC AppWizard的“Step 2”对话框
4.第三步 单击[下一个]按钮进入下一步,出现如图3所示的对话框。允许用户在程序中加入复 合文档、自动化、ActiveX控件的支持。 5. 第四步 单击[下一个]按钮进入下一步,出现如图4所示的对话框,对话框的前几项依次确定 对浮动工具条、打印与预览以及通信等特性的支持。
CString s; s.Format("绘制各种图形");pDC->TextOut(50,50,s); //文字输Object( pOldPen ); pDC->SelectObject( pOldBrush); }
// 恢复设备环境中原来的画笔 // 恢复设备环境中原来的画笔
图3 MFC AppWizard的“Step 3”对话框
图4 MFC AppWizard的“Step 4”对话框
3.3.2 创建一个单文档应用程序
6. 第五步 保留以上默认值,单击[下一个]按钮进入下一步。弹出如图5所示的对话框,这里出现三 个方面的选项,供用户来选择: (1) 应用程序的主窗口是MFC标准风格还是窗口左边有切分窗口的浏览器风格; (2) 在源文件中是否加入注释用来引导用户编写程序代码; (3) 使用动态链接库还是静态链接库。
pDC->SetWindowExt(1000,1000);
// 设置窗口范围
pDC->SetViewportExt(rectClient.right,-rectClient.bottom); 口范围
// 设置视
pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2);// 设置视口原 点
件 Ex_SDIHello.exe,运行结果如图7所示。
标题栏 工具栏
菜单栏
图6 MFC AppWizard的“Step 6”对话框
文档窗 口
图7 Ex_SDIHello运行结果
状态栏
• VC++所编写的Windows图形应用程序通 常是在视图类中通过OnDraw函数中添加绘 图代码完成图形的生成。OnDraw函数是 CView类中的一个虚拟成员函数,每当窗 口需重绘时应用程序框架会调用它。
pDC->LineTo(700,400);
CBrush brush; // 定义一个画刷变量 brush.CreateSolidBrush(RGB(0,255,0));// 创建绿色画刷
CBrush* pOldBrush =pDC->SelectObject(&brush);
pDC->Rectangle(200,200,500,500);//画矩形 pDC->Ellipse(600,200,700,500);//画椭圆
下面的OnDraw函数是由AppWizard直接生成的:
void CEx_SDIHelloView::OnDraw(CDC* pDC)
{ CEx_SDIHelloDoc* pDoc = GetDocument();//获 取当前文档指针
ASSERT_VALID(pDoc);// 检查指针是否为空
// TODO: add draw code for native data here //下面可添加自己的程序代码
}
例1 坐标映射
[例Ex_Draw] 通过设置窗口和视口大小来改变显示的比例
(1) 用MFC AppWizard创建一个默认的单文档应用程序Ex_Draw。
(2) 在CEx_DrawView::OnDraw函数中添加下列代码:
void CEx_DrawView::OnDraw(CDC* pDC)
{
创建一个单文档应用程序
用MFC AppWizard(MFC应用程序向导)可以方便地创建一个通用的Windows单文档应用程 序,其步骤如下。 1. 开始 选择“文件”→“新建”菜单,在弹出的“新建”对话框中,可以看到工程标签页面中,显
示出一 系列的应用程序项目类型;选择MFC AppWizard(exe)的项目类型(该类型用于创建可执行 的Windows应用程序),将项目工作文件夹定位在“D:\Visual C++ 6.0程序”,并在工程编辑 框中输入项目名Ex_SDIHello,结果如图1所示。
图5 MFC AppWizard的“Step 5”对话框
3.3.2 创建一个单文档应用程序
7. 第六步 保留默认选项,单击[下一步]按钮进行下一步,出现如图6所示的对话框。在 这里,用户可以对MFC AppWizard提供的默认类名、基类名、各个源文件名进 行修改。 单击[完成]按钮出现一个信息对话框,显示出用户在前面几个步骤中作出的选择 内容,单击[确定]按钮系统开始创建,并又回到了Visual C++ 6.0的主界面。 8.编译并运行 到这里为止,用户虽然没有编写任何程序代码,但MFC AppWizard已经根据用 户的选择内容自动生成基本的应用程序框架。单击编译工具栏上的运行工具按钮 “”或按快捷键Ctrl+F5,系统开始编连并运行生成的单文档应用程序可执行文
pDC->Ellipse(CRect(-500,-500,500,500)); }
例2 各种图形绘制
void CEx_SDIHelloView::OnDraw(CDC* pDC)
{ CEx_SDIHelloDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
图1 MFC AppWizard的“新建”对话框
2. 第一步 单击[确定]按钮,出现如图1所示的对话框,进行下列选择: (1)从应用程序类型单个文档(SDI)、多重文档(MDI)和基本对话框(基于对话框的 应用程序)中选择“单个文档”。 (2) 决定应用程序中是否需要MFC的文档视图(“文档/查看体系结构支持”)结构的 支持。若不选定此项,则程序中的磁盘文件的打开、保存以及文档和视图的相互 作用等功能需要用户来实现,且将跳过Step 2~Step 5,直接弹出“Step 6”对话 框。一般情况下,应选中此项。 (3) 选择资源所使用的语言,这里是“中文[中国]”。 3.第二步 单击[下一个]按钮,出现如图2所示的对话框,让用户选择程序中是否加入数据 库的支持(有关数据库的内容将在以后的章节中介绍)。
CPen pen;
// 定义一个画笔变量
pen.CreatePen( PS_SOLID, 2, RGB(255,0,0)); // 创建红色画笔
// 将此画笔选入当前设备环境并保存原来的画笔
CPen* pOldPen = pDC->SelectObject( &pen);// 用此画笔绘制直线
pDC->MoveTo(100,100);
CEx_DrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rectClient;
GetClientRect(rectClient);
// 获得当前窗口的客户区大小
pDC->SetMapMode(MM_ANISOTROPIC); // 设置MM_ANISOTROPIC映 射模式
合集下载
第7章 单文档应用程序
7.1.2 Doc类
文档/视图的功能很强大,但也很复杂, MFC框架在后台完成了大量工作,若仅 通过AppWizard自动生成的一些代码,是 无法了解文档/视图如何实现的,有必要 阅读MFC源代码,简要的了解工作流程, 对于自身能力的提升非常有帮助。 注:MFC框架的源代码是公开的,MFC 的函数功能及调用流程,在源代码中得 到完全体现,若不确定某个函数的内部 实现,可打开源代码,找到函数定义处, 阅读后便可柳暗花明。源代码路径
7.4.1 设置分区
【范例7-5】新建一个单文档工程名为 Sdi064,在状态栏同步显示鼠标坐标位 置和颜色信息。
7.4.2 更新内容
在程序运行时,可动态更新状态栏窗格 显示的文本,用于显示各种提示信息, 如当前鼠标位置、当前位置的颜色信息 等。SetPaneText函数设置窗格显示的文 本,格式如下: BOOL CStatusBar::SetPaneText(int nIndex,LPCTSTR lpszNewText,BOOL bUpdate=TRUE) 参数: nIndex:要更新的窗格的位置索引。 lpszNewText:新文本值。
7.1.3 View类
ASSERT断言宏用于判断其参数表达式 是否为真,如ASSERT(1==0); 会弹出一 个错误窗口,并退出程序。类似的断言 宏VERIFY具有同样的功能,区别在于 ASSERT宏只能在Debug模式下可用,在 Release版本中失效,而VERIFY宏在 Release版本仍然被执行,但不会中断程 序。 #ifndef和#endif是预编译指令,用于预编 译判断,根据条件决定要编译哪些语句, #ifndef判断是否没有定义某个宏,即if no
7.3.1 添加工具栏资源
【范例7-4】新建一个单文档工程名为 Sdi063,添加一个工具栏,实现鼠标交 互式绘点、绘线功能。
第16讲单文档程序结构
10
向导生成的核心类及其功能
1.应用程序类CMyTextOutApp CMyTextOutApp类是MFC的CWinApp类的派生类。 它的主要功能有: 应用程序的初始化; 程序的启动; 程序运行结束时的清理工作。 应用程序对象theApp是一个唯一的全局变量,它的 主要功能是通过调用WinMain()主函数启动程序的 运行。MFC应用程序框架也有一个作为程序入口 点的WinMain()主函数,但在源程序中看不见该函 数,它在MFC中已定义好并同应用程序相链接。
25
CDC类
为了支持GDI绘图,MFC提供了两种重要的类:
设备环境类(CDC类),用于设置绘图属性和 绘制图形;
绘图对象类,封装了各种GDI绘图对象,包括画 笔、刷子、字体、位图、调色板和区域。 MFC中,设备环境DC是由VC++的CDC类对象来 表示的,可以调用CDC的很多成员函数来完成各 种各样的绘图操作。
【例9-1】利用MFC AppWizard[exe]向导生成 一个SDI单文档应用程序MyTextOut。
6
利用向导建立一个单文档应用程序框架
【编程步骤】 (1)在Visual C++ IDE中执行File|New命令,打开 New对话框。在项目类型列表框中选择MFC AppWizard[exe]项,在Project name框中输入项目 名称,本例为MyTextOut。选择好合适的路径。
13
向导生成的核心类及其功能
5.文档模板类CSingleDocTemplate 文档、视图、框架类和所涉及的资源形成了一 种固定的联系,这种固定的联系就称为文档 模板。 文档模板类CSingleDocTemplate是MFC的 CDocTemplate类的派生类 CSingleDocTemplate文档模板类在应用程序 中有着非常重要的作用,是它将原本独立的 文档、视图和框架窗口对象联系在一起。
创建一个单文档应用程序ppt课件
图2 MFC AppWizard的“Step 1”对话框
图2 MFC AppWizard的“Step 2”对话框
4.第三步 单击[下一个]按钮进入下一步,出现如图3所示的对话框。允许用户在程序中加入复 合文档、自动化、ActiveX控件的支持。 5. 第四步 单击[下一个]按钮进入下一步,出现如图4所示的对话框,对话框的前几项依次确定 对浮动工具条、打印与预览以及通信等特性的支持。
创建一个单文档 应用程序
2. 第一步 单击[确定]按钮,出现如图1所示的对话框,进行下列选择: (1)从应用程序类型单个文档(SDI)、多重文档(MDI)和基本对话框(基于对话框的 应用程序)中选择“单个文档”。 (2) 决定应用程序中是否需要MFC的文档视图(“文档/查看体系结构支持”)结构的 支持。若不选定此项,则程序中的磁盘文件的打开、保存以及文档和视图的相互 作用等功能需要用户来实现,且将跳过Step 2~Step 5,直接弹出“Step 6”对话 框。一般情况下,应选中此项。 (3) 选择资源所使用的语言,这里是“中文[中国]”。 3.第二步 单击[下一个]按钮,出现如图2所示的对话框,让用户选择程序中是否加入数据 库的支持(有关数据库的内容将在以后的章节中介绍)。
void CEx_SDIHelloView::OnDraw(CDC* pDC) { CEx_SDIHelloDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CPen pen; // 定义一个画笔变量 pen.CreatePen( PS_SOLID, 2, RGB(255,0,0)); // 创建红色画笔 // 将此画笔选入当前设备环境并保存原来的画笔 CPen* pOldPen = pDC->SelectObject( &pen);// 用此画笔绘制直线 pDC->MoveTo(100,100); pDC->LineTo(700,400); CBrush brush; // 定义一个画刷变量 brush.CreateSolidBrush(RGB(0,255,0));// 创建绿色画刷 CBrush* pOldBrush =pDC->SelectObject(&brush);
VC MFC基础入门PPT课件
COLORREF m_nColors[3]; //用户可选颜色数组 DWORD m_nColorIndex; // 当前所选颜色索引 CString m_strShow; // 显示的内容 BOOL m_bShow; // 是否显示
7
在CMy_ResView::CMy_ResView()中初始化成员变量: m_nColors[0] = RGB(255,0,0); m_nColors[1] = RGB(0,255,0); m_nColors[2] = RGB(0,0,255); m_nColorIndex = 0; m_strShow = "Hello World!"; m_bShow = TRUE;
10
在My_ResView.cpp文件中,读者会看到ID_OPER_SHOW
对应的COMMAND消息的绑定,代码如下 :
BEGIN_MESSAGE_MAP(CMy_ResView, CView)
//{{AFX_MSG_MAP(CMy_ResView)
ON_COMMAND(ID_OPER_SHOW, OnOperShow)
void CMy_ResView::OnOperShow()
{m_bShow = !m_bShow;
Invalidate(); // 强制程序重新窗口
}
重新编译运行程 序,可看到“显 示”菜单项工作
正常
11
(2) UPDATE_COMMAND_UI消息的响应
UPDATE_COMMAND_UI消息是在窗口将要绘制菜单项的时
第10章 在MFC中创建应 用程序的资源
1
10.1 VC++程序中的资源
资源
位图 光标
对话框
字符串
7
在CMy_ResView::CMy_ResView()中初始化成员变量: m_nColors[0] = RGB(255,0,0); m_nColors[1] = RGB(0,255,0); m_nColors[2] = RGB(0,0,255); m_nColorIndex = 0; m_strShow = "Hello World!"; m_bShow = TRUE;
10
在My_ResView.cpp文件中,读者会看到ID_OPER_SHOW
对应的COMMAND消息的绑定,代码如下 :
BEGIN_MESSAGE_MAP(CMy_ResView, CView)
//{{AFX_MSG_MAP(CMy_ResView)
ON_COMMAND(ID_OPER_SHOW, OnOperShow)
void CMy_ResView::OnOperShow()
{m_bShow = !m_bShow;
Invalidate(); // 强制程序重新窗口
}
重新编译运行程 序,可看到“显 示”菜单项工作
正常
11
(2) UPDATE_COMMAND_UI消息的响应
UPDATE_COMMAND_UI消息是在窗口将要绘制菜单项的时
第10章 在MFC中创建应 用程序的资源
1
10.1 VC++程序中的资源
资源
位图 光标
对话框
字符串
vc_6单文档应用程序 vc入门ppt
两类文档视结构程序
• 单文档界面(SDI)应用程序 • 多文档界面(MDI)应用程序
SDI
MDI
应用程序向导生成的实现文件
• 对应于一个头文件中定义的类,都有一个类的实 现文件。在实现文件中主要定义在头文件中声明 的成员函数的实现代码和消息映射。 • 值得说明的是,向导生成的成员函数有很多,不 要因为没有使用某个成员函数而删除其声明和实 现代码。并且,用户一般不要轻易修改文件中那 些以灰色字体显示的代码,因为这些代码是通过 资源编辑器或ClassWizard类向导进行维护的。
从AppWizard向导开始……
CObject CCmdTarget
CWinThread CDocument
CWinApp
CWnd
CFrameWnd CView CHelloDoc CMainFrame CHelloView
CHelloApp
CFrameWnd
CView
CDocument
CWinApp 应用程序类
2.1 文档类头文件
向 导 为 项 目 Hello 生 成 了 文 档 类 的 头 文 件
HelloDoc.h, 该 头 文 件 用 于 定 义 文 档 类
CHelloDoc。CHelloDoc 类 是 MFC 的 CDocument
类的派生类,它主要负责应用程序数据的保存和 装载,实现文档的序列化功能。
4.1应用程序类头文件
向导为项目Hello生成了应用程序类的头文件
Hello.h,该头文件用于定义应用程序类CHelloApp。
CHelloApp类是MFC的CWinApp类的派生类,它主 要负责完成应用程序的初始化、程序的启动和程序 运行结束时的清理工作;接受所有事件消息,并将 这 些 消 息 传 递 给 由 CFrameWnd 派 生 的 类 和 由
第10章单文档应用程序设计
《面向对象技术与Visual C++》--第10章
8
虚拟键代码
键盘类型根据语言或国家的不同而不同,为了避免依赖于特 定国家的键盘布局,Windows键盘驱动程序将键盘的扫描码 转换为一组标准虚拟键代码,和按键消息一起传给应用程序。
虚拟键代码 Windows 标识符 VK_INSERT VK_LEFT VK_NEXT VK_BACK VK_RETURN
《面向对象技术与Visual C++》--第10章
12
菜单的建立和实现
菜单编辑器的使用。 为程序加入菜单的操作分为以下几步:
通过菜单编辑器生成菜单界面 ; 建立菜单项和消息处理函数的映射; 在处理函数中添加菜单项功能代码。
《面向对象技术与Visual C++》--第10章
13
滚动条
滚动功能使用户可以阅读和编辑大于视图窗口 的任何东西--无论是文本、表格、数据库记录 还是图像。 只要它所需的空间超出了客户区域所能提供的 空间,就可以使用滚动条。
《面向对象技术与Visual C++》--第10章
3
AppWizard向导创建的类和文件
AppWizard向导为生成的派生类创建单独的源 文件,缺省情况下,类名和类源文件名是基于 项目名的(可以在AppWizard向导创建应用程 序过程中指定其他名称)。 AppWizard向导为单文档应用程序创建4个派 生类和其它一些文件。这4个类分别是文档类、 视图类、主框架窗口类和应用程序类。
《面向对象技术与Visual C++》--第10章
22
控 件 图形控件 静态文本控件 编辑框 组框 显示图标
描 述
常用于为其他控件提供选项卡 允许用户的输入, 允许用户的输入,并提供完整的编辑能力 视觉上将控件分组(典型情况下是一系列的单选钮、复选框) 视觉上将控件分组(典型情况下是一系列的单选钮、复选框)
单文档应用程序设计4ppt课件
delete pDC;
精选课件ppt
20
第10章 单文档应用程序设计
10.6.4 绘图工具对象 绘图工具对象
CFont CBrush CPen ……
精选课件ppt
21
第10章 单文档应用程序设计
10.6.4 绘图工具对象 绘图工具对象
图形对象 类
等价的图形设备句 柄
描述
CBrush HBRUSH
10.6.1 GDI GDI—Graphics Device Interface
GDI是用户可以调用的一套用于绘图操作的函数集。
应用程序
GDI
设
显示器
备
描
述 环
打印机
境
绘图仪
精选课件ppt
5
第10章 单文档应用程序设计
10.6.1 GDI
GDI—Graphics Device Interface
描述 基类,可用来直接访问显示器或打印机等设备上下文。 窗口的客户区的显示上下文,在窗口的OnPaint成员函数中使用,其 构造中调用BeginPaint(),析构中调用EndPaint()。 窗口的客户区的显示上下文,直接在窗口客户区进行绘制时使用(非 OnPaint)。其构造函数中调用的不是BeginPaint函数,而是GetDC 函数;相应的,ReleaseDC函数在其析构函数被自动调用。 整个窗口的显示上下文,包括客户区和非客户区。 Windows图元文件的设备上下文。一个Windows图元文件包括一系列 的图形设备接口命令,可以通过重新执行这些命令来创建图形。
R2_XORPEN
dest = src XOR dest
R2_NOTXORPEN
dest =精N选O课T 件(srpcpXtOR dest)
第5章 单文档应用程序
5.2.1 在程序中声明一个文档类
当使用MFC创建应用程序时,AppWizard创建单个文档 创建应用程序时, 当使用 创建应用程序时 创建单个文档 节创建的项目中, 类。在5.1节创建的项目中,这个文档类是 节创建的项目中 CS数 5.2.2 CDocument类的成员函数
第5 章
单文档应用程序
本章将详细介绍如何开发单文档应用程序。 本章将详细介绍如何开发单文档应用程序。单文档应用 程序是最简单、最重要的文档/视图结构的应用程序 视图结构的应用程序。 程序是最简单、最重要的文档 视图结构的应用程序。本章 主要涉及的内容包括: 主要涉及的内容包括: • 如何利用 如何利用MFC创建单文档应用程序; 创建单文档应用程序; 创建单文档应用程序 • CDocument类在单文档应用程序中的作用; 类在单文档应用程序中的作用; 类在单文档应用程序中的作用 • 详细介绍文档类的函数 详细介绍文档类的函数InitInstance(); ; • 视图类的使用; 视图类的使用; • 如何在单文档应用程序中使用控件
5.1
利用MFC创建单文档程序 利用MFC创建单文档程序 MFC
本节详细介绍如何创建一个单文档应用程序。 本节详细介绍如何创建一个单文档应用程序。
5.2
CDocument类 CDocument类
节创建的单文档应用程序SDI_ActiveX中包含 个 中包含5个 在5.1节创建的单文档应用程序 节创建的单文档应用程序 中包含 类:CAboutDlg、CMainFrame、CSDI_ActiveXApp、 、 、 、 CSDI_ActiveXDoc和CSDI_ActiveXView。本节重点讲述由 和 。 CDocument类派生的 类派生的CSDI_ActiveXDoc类。 类派生的 类
第 使用Word创建和编辑文档PPT课件
Word工作界面
•
启动Word后,即可看到图4-1所示的Word工作窗口,其包括的主
要元素包括标题栏、菜单栏、工具栏、任务窗格、状态栏和滚动条。
•
图4-1 Word工作窗口
第1页/共10页
新建文档
•
利用【新建文档】任务窗格可以新建文档,方法为:在Word菜单栏
中选择【文件】|【新建】命令,在工作窗口右侧打开【新建文件】任
可以将插入点定位于该单元格中。
第6页/共10页
编辑表格
•
在Word中,对创建好的表格可以有多种编辑方式 ,最常用的3种编
辑表格操作如下所示:
插入和删除单元格、行以及列 合并单元格 拆分单元格 •
第7页/共10页
插入图片
•
用户在Word中可以方便地在文档中插入图片。插入到文档中的图片
可以通过剪贴画库、扫描仪或数码相机获得,也可以从本地磁盘和网络驱动
宽度。
第4页/共10页
编辑文档
•
当用户发现文档中有需要修改甚至错误的地方时,可以通过【编辑】
菜单中的命令来编辑和修改文档 。编辑文档操作包括以下几种:
选定文本 移动和复制 查找和替换 撤销和恢复
第5页/共10页
创建表格
•
在Word中,可以通过在菜单栏中选择【表格】|【插入】|【表格】
命令,或者单击工具栏上的【插入表格】按钮,将表格添加到文档中。
动转到下一行。在改写方式下,输入的内容将覆盖插入点后的内容。Word
默认的输入状态是插入方式。
•
在文本行内按Enter键之后,将在文档内创建新的段落。按键盘上的
空格键之后,就在插入点处添加一个空格符号。在全角状态下,每按一次空
格键就会产生一个全角的空格符号,它相当于一个汉字的宽度;在半角状态
•
启动Word后,即可看到图4-1所示的Word工作窗口,其包括的主
要元素包括标题栏、菜单栏、工具栏、任务窗格、状态栏和滚动条。
•
图4-1 Word工作窗口
第1页/共10页
新建文档
•
利用【新建文档】任务窗格可以新建文档,方法为:在Word菜单栏
中选择【文件】|【新建】命令,在工作窗口右侧打开【新建文件】任
可以将插入点定位于该单元格中。
第6页/共10页
编辑表格
•
在Word中,对创建好的表格可以有多种编辑方式 ,最常用的3种编
辑表格操作如下所示:
插入和删除单元格、行以及列 合并单元格 拆分单元格 •
第7页/共10页
插入图片
•
用户在Word中可以方便地在文档中插入图片。插入到文档中的图片
可以通过剪贴画库、扫描仪或数码相机获得,也可以从本地磁盘和网络驱动
宽度。
第4页/共10页
编辑文档
•
当用户发现文档中有需要修改甚至错误的地方时,可以通过【编辑】
菜单中的命令来编辑和修改文档 。编辑文档操作包括以下几种:
选定文本 移动和复制 查找和替换 撤销和恢复
第5页/共10页
创建表格
•
在Word中,可以通过在菜单栏中选择【表格】|【插入】|【表格】
命令,或者单击工具栏上的【插入表格】按钮,将表格添加到文档中。
动转到下一行。在改写方式下,输入的内容将覆盖插入点后的内容。Word
默认的输入状态是插入方式。
•
在文本行内按Enter键之后,将在文档内创建新的段落。按键盘上的
空格键之后,就在插入点处添加一个空格符号。在全角状态下,每按一次空
格键就会产生一个全角的空格符号,它相当于一个汉字的宽度;在半角状态
单文档应用程序设计1
多文档应用程序
CMainFrame CChildFrame
第10章 单文档应用程序设计
10.2.3
MFC类层次
CMyWinApp theApp; …… BOOL CMyWinApp::InitInstance() { …… CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_MYTYPE, RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CMyView)); AddDocTemplate(pDocTemplate); CMainFrame* pMainFrame = new CMainFrame; …… } CObject CCmdTarget CWndTread CWinApp CMyWinApp CWnd CView CMyView CFrameWnd CMDIFrameWnd CMDIChildWnd CDocument CMyDoc CDocTemplate CMultiDocTemplate
10.2.2
MFC类层次
CObject CCmdTarget CWndTread CWinApp CMyWinApp CWnd CView CMyView CFrameWnd CMDIFrameWnd CMDIChildWnd CDocument CMyDoc CDocTemplate CMultiDocTemplate
MFC类层次
CObject CCmdTarget CWndTread CWinApp CMyWinApp CWnd CView CMyView CFrameWnd CMainFrame CDocument CMyDoc CDocTemplate CSingleDocTemplate
