多个文件类型、视图和框架Windows

在文档、其视图及其框架窗口中的标准关系。 文档/视图创建所述。 许多应用程序支持单文件类型 (不过,的多个可以打开该文档类型) 在文档的一个视图,并且只有一个框架窗口每个文档。 ,但某些应用程序可能需要修改一个或多个一些默认值。

您想进一步了解什么?

  • 多个文件类型

  • 多个视图

  • 多个框架窗口

  • 拆分窗口

多个文件类型

MFC 应用程序向导创建单文件您的类。 有时,不过,,您可能需要支持多个文件类型。 例如,应用程序可能需要工作表,该图表文档。 每个文件类型由它由自己的视图类记录类和可能。 当用户选择文件的命令时,框架的列表显示了支持的文件类型的对话框。 然后创建用户选择类型的文档。 每个文件类型由它的文档模板对象管理。

若要创建额外文档类,请参见 添加类。 选择 CDocument 为类类型从派生,并为请求的文档信息。 然后实现新类的数据。

若要调用框架您的额外文档类,则必须添加第二次调用在应用程序类的 InitInstance 重写的 AddDocTemplate 。 有关更多信息,请参见 文档模板

多个视图

许多文档只需要一个视图,但是,支持可以有多个视图单文件。 为了帮助您实现多个视图,文档对象保留其视图列表,为添加和移除视图提供成员函数,并提供让多个视图功能了解的 UpdateAllViews 成员文档中的数据何时更改了。

MFC 支持需要在同一个三个公共用户界面多个视图文档。 这些模型是:

  • 同一个类,每个的视图对象在单独的 MDI 文档框架窗口。

    您可能希望支持创建文档中的第二个框架窗口。 用户可以选择一个新的 windows 命令打开第二个框架以相同的目的文档然后使用两个帧同时查验文档的不同部分。 框架通过重复初始框架窗口和视图支持在 windows 菜单的新 windows 命令 MDI 应用程序的附加到文档。

  • 同一个类的视图对象在同一个文档框架窗口。

    拆分窗口拆分了视图空间单个文档窗口到文档的多个单独的视图。 结构创建从同一视图类的多个视图对象。 有关更多信息,请参见 拆分窗口。

  • 不同的类视图对象在单个框架窗口的。

    在此模型中,拆分窗口的区别,多个视图共享一个框架窗口。 视图由不同的类构造,提供不同的方式的每个视图查看同一文档。 例如,一个视图可能显示文本处理在普通模式文档,而另一个视图在大纲显示模式时显示它。 拆分控件允许用户调整视图的相对大小。

下图中,分为部分 A, b 和 c,按出现的顺序显示三个用户界面设计上面。

多视图用户界面

多视图用户界面

框架提供这些模型通过实现新 windows 命令以及提供类 CSplitterWnd,如 拆分窗口所述。 可以实现其他方式使用这些根据您的起点。 有关演示视图、框架窗口和拆分的不同配置的示例程序,请参见 MFC 示例

有关 UpdateAllViews的更多信息,请参见 " MFC 引用scribble 示例的类 CView

多个框架窗口

可以使用在 windows 菜单的新 windows 命令以 MDI 应用程序可以创建在相同的第二个框架窗口文档。 有关更多信息,请参见在该图 多个视图用户界面的第一个模型。

拆分窗口

在拆分窗口,窗口是或者可以是,拆分为两个或多个滚动窗格。 一个拆分控件 (或 “零碎框”) 在窗架滚动条来允许用户调整窗格的相对大小。 每个窗格位于相同的视图文档。 在 “dynamic”拆分,视图是同一个类,如该图 多个视图用户界面的 B 节所示。 在 “static”拆分视图,可以是不同的类。 拆分窗口两个类型由类 CSplitterWnd支持。

动态拆分窗口,与类的视图,允许用户随机拆分窗口为多个窗格然后移动不同的窗格查看文档的不同部分。 用户可以 unsplit 还移除其他视图的窗口。 拆分窗口添加到 scribble 示例 是一个示例。 该主题描述创建动态拆分窗口的技术。 动态拆分窗口在该图 多个视图用户界面的 B 部分显示。

静态拆分窗口,具有不同的类视图中,从窗口拆分为多个窗格,每个开始使用不同的用途。 例如,在 Visual C++ 位图编辑器,图像窗口并排显示两个窗格。 左侧窗格中显示位图的一个与原物相同大小图像。 右窗格中显示同一位图的一个缩放的或已创建的图像。 窗格由用户可以通过拖动更改窗格的相对大小的 “拆分栏”分隔。 静态拆分窗口在该图 多个视图用户界面的 C 部显示。

有关更多信息,请参见 " MFC 引用MFC 示例的类 CSplitterWnd

请参见

概念

文档/视图结构