- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 多文档应用程序
第6章 多文档应用程序 本章将详细介绍如何开发多文档应用程序。多文档应用程序一般指该程序包含了多个文档类型。本章主要涉及的内容包括:如何利用MFC创建多文档应用程序;窗口的拆分如何实现;多文档应用程序中的文件读写,最后给出一个最简单的例子。本章知识点包括: 多文档应用程序框架 窗口的拆分 多文档应用程序中数据读写 6.1 多文档应用程序框架 在本节,首先利用MFC创建一个多文档应用程序,之后将详细讲述多文档应用程序的文档、视图和框架窗口,还将讲述文档的多个视图。 创建多文档应用程序的步骤和创建单文档应用程序差不多,只不过在第一步输入项目名称“MDI_ APP”,在MFC AppWizard的第二步,选择【Multiple documents】选项即可。这里不再详细给出创建的步骤。 6.1.1 文档类 对于实际使用的应用程序,如果功能比较复杂的话,都需要具有多视图的能力,一般要使用多个文档来组织信息。当需要在单个应用程序中使用多个文档时,就需要采用多文档界面的模型。多文档界面的应用程序要比单文档应用程序复杂。 文档就代表用户一般用【File】|【Open】命令打开、用【File】|【Save】命令保存的数据单位。CDocument类支持诸如创建文档、数据载入文档以及保存文档的标准操作。一个应用程序支持多文档类型,也就是说,可以打开若干种文件类型的文件。例如,既支持文本文档,又支持Excel文档,还支持图片浏览等等。每一种文档类型,需要一个文档模版来支持,可以在应用程序的CDocument类的派生类的初始化函数InitInstance()中创建模板。 6.1.2 使用多文档类型 如果需要多种文档类型,就需要用自己的文档类代表每种文档类型,并使用自己的视图类。当单击【File】|【New】命令时,框架将显示一个对话框,列出应用程序支持的文档类型。当用户选择了文档类型之后,程序创建该类型的一个文档。如果需要额外的文档类,就通过在ClassWizard对话框中使用【Add Class】按钮,选择基类作CDocument类即可。 为了将额外文档类通知给框架,需要在应用程序类里面的InitInstance()成员函数中添加对AddDoctemplate()的第二次调用。 6.1.3 文档的多个视图 MFC支持单个文档多个视图的模式。如果程序需要,单个文档可以支持任意多的视图。并且文档类还具有一个成员函数UpdateAllViews()。MFC支持三种常用的用户界面。 应用程序允许同一类的对象,显示在单独的多文档框架子窗口中。 应用程序允许用户在同一文档框架窗口中查看同一类的对象,应用程序使用拆分窗口,把单文档窗口的视图空间拆分成多个单独的文档视图。 MFC还允许在单个窗口框架中查看不同类的对象。 6.1.4 多文档界面应用程序的框架类 CMDIFrameWnd类提供了Windows多文档界面框架以及成员函数用来管理窗口。为了给多文档界面应用程序创建一个有用的MDI框架,必须从CMDIFrameWnd为主框架窗口派生一个类。派生了该类以后,给派生类添加成员变量,以存储特定的数据。 CMDIFrameWnd类继承了大部分CFrameWnd的默认实现。值得注意的是,多文档窗口的对象不要使用delete来删除,这样可能会导致内存泄露。应该使用DestroyWindow()函数。 6.1.5 多文档模版类 与单文档模版类CSingleDocTemplate定义实现单文档界面的文档模版相同,CMultiDocTemplate类定义并实现多文档界面的文档模版。多文档界面应用程序使用主框架窗口作为工作区,可以打开多个或者0个文档。每个文档框架窗口可以显示一个文档。 6.2 窗口的拆分 在拆分窗口中,窗口被拆分成两个或多个可滚动的面板。窗口拆分分静态拆分和动态拆分两种。动态拆分能够按用户的意思把一个窗口拆分成多个面板,从而方便操作。用户还可以随时取消对窗口的拆分。静态拆分功能把窗口拆分成多个面板的窗口,每个面板各有不同的目的。 6.2.1 CSplitterWnd类 使用MFC创建应用程序,并需要拆分窗口的时候,可以使用CSplitterWnd类。窗口的拆分主要是要在多文档界面应用程序中的子窗口类中实现。需要做的工作主要包括:添加CSplitterWnd类的成员变量,修改子窗口类的OnCreateClient()函数的功能。主要目的是需要在OnCreateClient()函数中调用创建Create()或者静态创建CreateStatic()函数。当框架显示一个拆分窗口的时候,首先显示父框架,然后显示拆分窗口。框架则根据理想尺寸设计面板的行和列,从拆分窗口的客户区的左上角到右下角进行。 6.2.2 动态拆分 在动态拆分窗口时,需要调用MFC
您可能关注的文档
最近下载
- 2015三峡大学(修改版)水电站课程设计计算书3.pdf VIP
- 视频脚本(解析版)-2025年高考语文一轮复习(新高考通用).pdf VIP
- 2019年广东高考理科数学真题及答案.docx VIP
- 2025年度感染病科五年发展规划.docx
- 再生资源有限责任公司突发环境事件风险评估报告(2024年修订版).docx VIP
- 乐山市2025年公需科目考试答案.docx
- TCSUS04-2019城市旧居住区综合改造技术标准.pdf VIP
- 电子技术基础第六版完整版.pdf VIP
- “规则的天空”:中国低空空域管理与安全体系演进趋势研究.pdf VIP
- 2015年广东高考理科数学真题及答案.doc VIP
文档评论(0)