16.3 SDI和MDI应用程序(1)
传统上,可以为Windows编写3种应用程序,它们是:
●基于对话框的应用程序:它们向用户显示一个对话框,该对话框提供了所有的功能。
●单一文档界面(SDI):这些应用程序向用户显示一个菜单、一个或多个工具栏和一个窗口,在该窗口中,用户可以执行任务。
●多文档界面(MDI):这些应用程序的执行方式与SDI相同,但可以同时打开多个窗口。
基于对话框的应用程序通常用途比较单一,它们可以完成用户输入量非常少的特定任务,或者专门处理某一类型的数据。这种应用程序的一个示例是Windows中的计算器,如图16-9所示。
单一文档界面通常用于完成一个特定任务,因为它允许用户把要处理的单一文档加载到应用程序中。但这个任务通常涉及到许多用户交互操作,用户也常常希望能保存或加载工作的结果。SDI应用程序的示例是WordPad(如图16-10所示)和Paint,它们都是Windows附带的程序。
|
| 图 16-9 |
|
| (点击查看大图)图 16-10 |
但一次只能处理一个文档,所以如果用户要打开第二个文档,就必须打开一个新的SDI应用程序实例,它与第一个实例没有关系,对一个实例的任何配置都不会影响第二个实例。例如,在Paint的一个实例中,可以把绘图颜色设置为红色,如果打开Paint的第二个实例,绘图颜色仍是默认的黑色。
多文档界面非常类似于SDI应用程序,但它可以在任一时刻在不同的窗口中保存多个已打开的文档。MDI的标识符包含在菜单栏右边的Window菜单中,该菜单在Help的前面。MDI应用程序的示例有Adobe Reader,如图16-11所示。
|
| (点击查看大图)图 16-11 |
本章将主要讨论创建MDI应用程序所涉及到的任务。原因是任何SDI应用程序基本上是MDI的一个子集,所以,如果能创建MDI应用程序,也就能创建SDI。第17章将创建一个简单的SDI应用程序,用于说明如何使用Windows常见对话框。
建立MDI应用程序
创建MDI会涉及到什么问题?首先,希望用户能完成的任务应是需要一次打开多个文档的任务。例如,文本编辑器或文本查看器。第二,应在应用程序中提供工具栏来完成最常见的任务,例如,设置字体样式、加载和保存文档等。第三,应提供一个包含Window菜单项的菜单,让用户可以重新定位打开的窗口(平铺和层叠),显示所有已打开窗口的列表。MDI应用程序的另一个功能是如果打开了一个窗口,该窗口包含一个菜单,则该菜单就应集成到应用程序的主菜单上。
MDI应用程序至少要由两个截然不同的窗口组成。第一个窗口叫作MDI容器(Container),可以在容器中显示的窗口叫作MDI子窗口。MDI容器既可以叫"MDI容器"也可以叫"主窗口",MDI子容器既可以叫"MDI子容器"又可以叫"子窗口"。
下面介绍一个小示例,来说明这些步骤的完成,之后再执行更复杂的任务。
| 回书目 上一节 下一节 |





























