热门标签 | 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


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

推荐阅读
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • 本文介绍了使用Rust语言编写、保存和编译程序的简单步骤。首先,打开记事本文件并编写程序代码,然后将代码保存到一个以.rs为扩展名的文件中。接下来,使用rustc命令来编译运行程序。最后,通过命令行运行编译后的程序,得到输出结果。如果遇到编译错误,可以下载Build Tools for Visual Studio 2017来解决。 ... [详细]
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社区 版权所有