作者:pilishen | 来源:互联网 | 2023-05-17 20:46
请问基于单文档和对话框的程序有什么区别?
什么时候基于单文档,什么时候基于对话框啊?
我感觉用单文档写的程序都可以用对话框来写。那么单文档的优势在那里啊?
27 个解决方案
本质上都是窗口程序,可以说都可以实现同样的功能。
只不过
对话框框架程序对于控件组成的界面有更好的包装,适应于界面通过很多控件呈现的简单程序。CDialog 类提供管理对话框的接口,Visual C++ 对话框编辑器使设计对话框和创建它们的对话框模板资源更为容易,代码向导则简化了在对话框中初始化和验证控件的过程和收集用户输入的值的过程。
文档/视图框架对于菜单、工具条和状态栏等UI元素有更好的包装,适应于需要对文件进行较多处理的应用。MFC 将数据管理分成文档类和视图类。文档存储数据和管理数据的打印,并协调更新多个数据视图。视图显示数据并管理用户与数据之间的交互,包括选择和编辑。在此模型中,MFC 文档对象将数据读入或写入永久存储区。该文档还可能提供到数据所驻留的任何位置(如在数据库中)的接口。一个单独的视图对象可管理数据显示,包括从在窗口中呈现数据到用户选择和数据编辑。该视图从文档获取显示数据,并将任何数据更改传递回文档。MFC 文档/视图结构使支持多视图、多文档类型、拆分窗口和其他有价值的用户界面功能变得容易。
一般来说,简单的程序用对话框框架,复杂一些的用文档/视图框架,但是没有硬性规定。
文档/视图框架更适合于进行文字/图形等的显示和处理。视图类对此封装了纵多的接口函数。虽然我们也可以在对话框类中想办法做到这一点,但所谓龙生九子,各有各样,每一个都有自己最适合的功用。
对话框类更适合进行人机交互,用来接收用户的请求,经过内部处理后返回结果,一般不需要进行图形化展示和文字处理等。
对话框开发更快速,适用于简单人机交互。
文档视图模型开发稍复杂,但是除了人机交互之外,还能对数据进行统一的控制,便于数据与UI的分离。
5楼 6楼说的都挺好,
那我的程序如果用一个对话框可以实现
我再改为单文档程序切分为2个cformview的话,
是不是没必,相当于脱了裤子放了个屁啊。
只要代码的内聚性好,模块独立性高,逻辑结构合理,之后的扩展是很容易的,用“文档/视图”或“对话框”不重要,界面的扩展很容易
用什么方式要具体问题具体分析,各有所长,没有绝对的好。
举几个例子看看?360用对话框?windows资源管理器又用什么呢?pdf阅读器呢?