热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

请问基于单文档和对话框的程序有什么区别?

请问基于单文档和对话框的程序有什么区别?什么时候基于单文档,什么时候基于对话框啊?我感觉用单文档写的程序都可以用对话框来写。那么单文档的优势在那里啊?
请问基于单文档和对话框的程序有什么区别?
什么时候基于单文档,什么时候基于对话框啊?
我感觉用单文档写的程序都可以用对话框来写。那么单文档的优势在那里啊?

27 个解决方案

#1


啊哈,我 也想了解下哦

#2


对话框程序便于添加控件,用于人机对话,输入输出

#3


那文档的优势呢?

#4


CArchieve序列化,便于存储

#5


本质上都是窗口程序,可以说都可以实现同样的功能。
只不过 对话框框架程序对于控件组成的界面有更好的包装,适应于界面通过很多控件呈现的简单程序。CDialog 类提供管理对话框的接口,Visual C++ 对话框编辑器使设计对话框和创建它们的对话框模板资源更为容易,代码向导则简化了在对话框中初始化和验证控件的过程和收集用户输入的值的过程。
文档/视图框架对于菜单、工具条和状态栏等UI元素有更好的包装,适应于需要对文件进行较多处理的应用。MFC 将数据管理分成文档类和视图类。文档存储数据和管理数据的打印,并协调更新多个数据视图。视图显示数据并管理用户与数据之间的交互,包括选择和编辑。在此模型中,MFC 文档对象将数据读入或写入永久存储区。该文档还可能提供到数据所驻留的任何位置(如在数据库中)的接口。一个单独的视图对象可管理数据显示,包括从在窗口中呈现数据到用户选择和数据编辑。该视图从文档获取显示数据,并将任何数据更改传递回文档。MFC 文档/视图结构使支持多视图、多文档类型、拆分窗口和其他有价值的用户界面功能变得容易。

一般来说,简单的程序用对话框框架,复杂一些的用文档/视图框架,但是没有硬性规定。

#6


文档/视图框架更适合于进行文字/图形等的显示和处理。视图类对此封装了纵多的接口函数。虽然我们也可以在对话框类中想办法做到这一点,但所谓龙生九子,各有各样,每一个都有自己最适合的功用。
对话框类更适合进行人机交互,用来接收用户的请求,经过内部处理后返回结果,一般不需要进行图形化展示和文字处理等。

#7


学习~

#8


5楼说的好

#9


对话框开发更快速,适用于简单人机交互。
文档视图模型开发稍复杂,但是除了人机交互之外,还能对数据进行统一的控制,便于数据与UI的分离。

#10


偏数据,用文档;偏控制,用对话框。

#11


up

#12


5楼 6楼说的都挺好,
那我的程序如果用一个对话框可以实现
我再改为单文档程序切分为2个cformview的话,
是不是没必,相当于脱了裤子放了个屁啊。

#13


哈哈

#14


引用 13 楼 jameshooo 的回复:
哈哈

我正经提问呢,严肃点行不行
我的意思是,程序以后可能还需要扩展,但我真的不清楚哪些应用用视图实现比对话框更好
有没有典型的应用例子啊?
谢谢

#15


只要代码的内聚性好,模块独立性高,逻辑结构合理,之后的扩展是很容易的,用“文档/视图”或“对话框”不重要,界面的扩展很容易

#16


引用 5 楼 Mackz 的回复:
本质上都是窗口程序,可以说都可以实现同样的功能。 
只不过对话框框架程序对于控件组成的界面有更好的包装,适应于界面通过很多控件呈现的简单程序。CDialog 类提供管理对话框的接口,Visual C++ 对话框编辑器使设计对话框和创建它们的对话框模板资源更为容易,代码向导则简化了在对话框中初始化和验证控件的过程和收集用户输入的值的过程。 
文档/视图框架对于菜单、工具条和状态栏等UI元素有更好的包装,适应于需要对文件进…

解释的很详细啊,顶一下。

#17


用什么方式要具体问题具体分析,各有所长,没有绝对的好。

#18


学习了。。我处学用MFC编程。。感觉难

#19


MARK

#20


学习了

#21


说得不太清楚,还是不明白他们之间有什么不同之处?

#22


受教了

#23


lingjiao le 

#24


顶一下

#25



举几个例子看看?360用对话框?windows资源管理器又用什么呢?pdf阅读器呢?

#26


还是不懂

#27


看来做图像处理的话基本上都是用文档视图类对话框了

推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文介绍如何在 Visual Studio Code 中使用 Jupyter Notebook 插件,包括创建、编辑和运行笔记本的基本操作。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • Ulysses Mac v29:革新文本编辑与写作体验
    探索Ulysses Mac v29,这款先进的纯文本编辑器为Mac用户带来了全新的写作和编辑环境。它不仅具备简洁直观的界面,还融合了Markdown等标记语言的最佳特性,支持多种格式导出,并提供强大的组织和同步功能。 ... [详细]
  • 解决Windows 10开机频繁自检问题的实用方法
    许多用户在使用Windows 10系统时,经常会遇到开机时自动进行磁盘检查的情况。这不仅影响了开机速度,还可能带来不必要的麻烦。本文将详细介绍如何通过简单的注册表修改来避免每次开机时的磁盘自检,提升系统启动效率。 ... [详细]
  • 本文介绍了解决Oracle 10G数据库中ORA-12541 TNS: no listener错误的详细步骤。该错误通常发生在监听器服务未正确启动或配置不当的情况下,文章将指导您通过检查服务状态、配置注册表和启动监听器来解决问题。 ... [详细]
author-avatar
pilishen
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有