1 / 16
文档名称:

第16单元 多文档视图结构.doc

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

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

分享

预览

第16单元 多文档视图结构.doc

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

下载得到文件列表

第16单元 多文档视图结构.doc

文档介绍

文档介绍:第16单元多文档界面程序
本单元教学目标
介绍多文档界面(MDI)程序的构造和编程方法。
学习要求
理解多文档界面(MDI)程序的构造,掌握其编程方法。
授课内容
和框架窗口界面程序、单文档界面(SDI)程序和基于对话框的应用程序一样,多文档界面(MDI)程序也是基本的MFC应用程序结构。MDI程序的结构最复杂,功能也最强。其特点是用户一次可以打开多个文档,每个文档均对应不同的窗口;主窗口的菜单会自动随着当前活动的子窗口的变化而变化;可以对子窗口进行层叠、平铺等各种操作;子窗口可以在MDI主窗口区域内定位、改变大小、最大化和最小化,当最大化子窗口时,它将占满MDI主窗口的全部客户区。MDI不仅可以在同一时间内同时打开多个文档,还可以为同一文档打开多个视图。
MDI应用程序
从程序员角度看,每个MDI应用程序必须有一个CMDIFrameWnd或其派生类的对象,该窗口称作MDI框架窗口。CMDIFrameWnd是CFrameWnd的派生类,除了拥有CFrameWnd类的全部特性外,还具有以下与MDI相关的特性:
,MDI的框架窗口并不直接与一个文档和视图相关联。MDI的框架窗口拥有客户窗口,在显示或隐藏控制条(包括工具条、状态栏、对话条)时,重新定位该子窗口。
,它负责管理主框架窗口的客户区以及创建子窗口。每个MDI主框架窗口都有且只有一个MDI客户窗口。
,CMDIChildWnd也是CFrameWnd的派生类,用于容纳视图和文档,相当于SDI下的主框架窗口。每打开一个文档,框架就自动为文档创建一个MDI子窗口。一个MDI应用程序负责动态的创建和删除MDI子窗口。在任何时刻,最多只有一个子窗口是活动的(窗口标题栏颜色呈高亮显示)。MDI框架窗口始终与当前活动子窗口相关联,命令消息在传给MDI框架窗口之前首先分派给当前活动子窗口。
,MDI框架窗口可以拥有自己的缺省菜单。当有活动子窗口时,MDI框架窗口的菜单条会自动被子窗口的菜单所替代。框架会自动监视当前活动的子窗口类型,并相应的改变主窗口的菜单。例如,在Visual Studio中,当选择对话框模板编辑窗口或源程序窗口时,菜单会有所不同。但是,对于程序员来说,只需在InitInstance()中注册文档时指定每一类子窗口(严格的讲是文档)所使用的菜单,而不必显式的通过调用函数去改变主框架窗口的菜单,因为框架会自动完成这一任务。
、平铺、排列子窗口和新建子窗口等一些标准窗口操作提供了缺省的菜单响应。在响应新建子窗口命令时,框架调用CDocTemplate::CreateNewFrame()为当前活动文档创建一个子窗口。CreateNewFrame()不仅创建子窗口,还创建与文档相对应的视图。
与开发基于对话框的应用程序和SDI应用程序一样,使用AppWizard可生成一个MDI应用程序框架,在此基础上,程序员可使用ClassWizard和各种资源编辑器来充实自己的应用程序。
AppWizard为MDI程序框架创建了以下类:
类说明
CAboutDlg “关于”对话框
CChildFrame 子框架窗口,用于容纳视图
CMyApp 应用程序类
CmyDoc 绘图程序视图类
CMyView 绘图视图类
CMainFrame 框架窗口(用来容纳子窗口),是MDI应用程序的主窗口
可以看出,hildFrame(子框架窗口)类,而且CMainFrame的职责也不同了。
另外,MDI和SDI的初始化应用程序实例方法上也有所不同。MDI应用程序的InitInstance()函数代码为:
BOOL CDrawApp::InitInstance()
{
……// 初始化工作
CMultiDocTemplate* pDocTemplate; // MDI文档模板
pDocTemplate = new CMultiDocTemplate(
IDR_DRAWTYPE,
RUNTIME_CLASS(CDrawDoc),
hildFrame),
RUNTIME_CLASS(CDrawView));
AddDocTemplate(pDocTemplate);
CMainFrame* pMainFrame = new CMainFrame; // 建立MDI主框架窗口
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
m_pMainWnd->eptF

最近更新

2025年沙洲职业工学院单招职业适应性测试题库.. 41页

2025年河北工业职业技术大学单招职业适应性考.. 40页

2025年河北省石家庄市单招职业倾向性考试模拟.. 41页

2025年河北轨道运输职业技术学院单招职业适应.. 42页

2025年河南信息统计职业学院单招综合素质考试.. 40页

2025年河南工业和信息化职业学院单招职业适应.. 40页

2025年河南建筑职业技术学院单招职业技能测试.. 40页

2026年云南交通运输职业学院单招职业倾向性测.. 41页

2025年河南职业技术学院单招职业倾向性考试模.. 39页

2025年泉州工艺美术职业学院单招职业适应性测.. 40页

2025年泉州纺织服装职业学院单招职业技能测试.. 38页

2025年泉州轻工职业学院单招职业倾向性考试模.. 41页

2026年保定职业技术学院单招职业技能考试题库.. 41页

2025年洛阳职业技术学院单招职业适应性测试模.. 39页

2025年济源职业技术学院单招职业倾向性考试模.. 41页

2025年浙江交通职业技术学院单招职业倾向性考.. 39页

2025年浙江商业职业技术学院单招职业倾向性考.. 39页

2026年华东政法大学单招职业技能测试模拟测试.. 41页

2025年浙江树人大学单招职业适应性测试题库汇.. 41页

2025年浙江海洋大学单招职业适应性测试题库推.. 40页

2025年浙江省宁波市单招职业倾向性测试模拟测.. 40页

2026年单招机电基础试题必考题 42页

2025年国家开放大学《建筑力学》章节测试参考.. 13页

【人教版英语字帖】七年级下册单词表衡水体字.. 42页

国开《建筑力学》期末机考答案 15页

介绍医院门诊ppt 28页

农村人才流失国外研究报告 2页

栏杆计算书 2页

黄酒评分、扣分标准表(共1页) 1页

曾仕强易经六十四卦解 68页