欢迎来到天天文库
浏览记录
ID:21897442
大小:204.76 KB
页数:12页
时间:2018-10-21
《轻松学visual c++之多文档应用程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章多文档应用程序在MFC的定义中,多文档界面(MDI)表示可以“同时”开启一份以上的Documents。这些Documents可以是相同类型,也可以是不同类型。基于多文档的应用程序和单文档应用程序有很多的相似性,它只是具有多个文档和视图对象。本章将简要介绍多文档程序的结构、拆分窗口、视图同步更新以及保存文档数据等内容。9.1MDI程序结构Windows应用程序中有很多都支持多文档视图结构。例如,VC++6.0就采用多文档架构,还有文档编辑器Word等。这一节我们将从多文档结构方面入手讲解一下多文档模板。我们先创
2、建一个多文档应用程序,该程序不需要添加任何多余代码。我们基于该程序来对多文档的结构进行简要介绍。9.1MDI程序结构1.文档类如果应用程序功能比较复杂的话,就需要具有多视图的能力,一般要使用多个文档来组织信息。当需要在单个应用程序中使用多个文档时,就需要采用多文档界面的模型。在单文档应用程序中,使用模板类CSingleDocTemplate来创建单文档应用程序。在多文档应用程序中使用多文档模版类CMultiDocTemplate类创建。9.1MDI程序结构2.多视图MFC支持单个文档多个视图的模式。如果程序需要,可
3、以为单个文档支持任意多的视图。MFC支持三种常用的用户界面。应用程序允许同一类的对象显示在单独的多文档框架子窗口中。应用程序允许用户在同一文档框架窗口中查看同一类的对象。应用程序使用拆分窗口,把单文档窗口的视图空间拆分成多个单独的文档视图。9.1MDI程序结构3.框架类多文档应用程序的主框架类CMainFrame派生于CMDIFrameWnd。CMDIFrameWnd类提供了Windows多文档界面框架以及成员函数用来管理窗口。9.2拆分窗口MDI程序的标准功能是允许在同一份Document开启一个以上的Views
4、。我们可以用多个视图窗口查看一份数据或多份数据。当我们用多个视图窗口查看一份数据时,它们的观看区可能互相重叠。而拆分窗口实现了将这些隶属于同一Document的Views能够结合在一个大窗口之内。本节将以两种方法来实现拆分窗口。9.2.1手动实现拆分窗口上面,我们已经介绍拆分窗口的概念。下面,我们以例子的形式介绍怎样利用CSplitterWnd类中的方法来实现窗口的拆分。我们接着上面创建好的Multiple程序来讲解。9.2.2利用向导实现拆分窗口AppWizard支持动态拆分窗口。只需在第四步单击Advanced
5、,在弹出的对话框中选择WindowsStyles选项卡选中Usesplitwindow选项即可。9.3接收键盘信息并存档这一节,我们将编写一个多文档程序。实现接收键盘信息,并实现保存数据功能。通过这个小例子来了解多文档视图的同步更新,以及文档的数据保存。9.3.1接收键盘信息本小节,我们将在多文档中实现实时接收键盘按键消息,并在各个拆分窗口中同步显示出来。具体的操作步骤如下。9.3.2数据存档上一小节我们实现了在多文档视图窗口中显示接收到的键盘消息。这一小节我们来实现怎样将输入的信息进行存档,并同时能打开。实现方法
6、非常简单,只需在文档类的成员方法CTextDoc::Serialize()中添加如下两行代码即可。9.4小结本章简要讲解了多文档程序的结构、拆分窗口、视图同步更新以及保存文档数据等内容。这些内容也是本章的重点,也是编写多文档程序的基础。其中保存文档数据所用的Serialize()函数非常巧妙,是MFC的经典之作,我们在以后还会继续探讨。
此文档下载收益归作者所有