单文档应用程序每次只能打开一个文档窗口(例如Windows自带的“记事本”程序),而多文档应用程序允许同时打开多个文档进行编辑,并且在编辑这些文档时,各文档之间互不影响(例如Visual C++ 6.0的源代码编辑器)。

1.5.1 技术要点:

  • 多文档应用程序和单文档应用程序类似,依然支持“文档/视图”结构,以做到数据与界面的分离;
  • 多文档应用程序在打开多个文档时,每个时刻只能有一个文档处于活动状态,活动的视图窗口将覆盖非活动窗口。通过菜单和工具栏所发出的指令,通常只对当前活动文档有效;
  • 多文档中的每个子窗口都可以最大化和最小化,但不同于普通窗口的最大化和最小化,多文档子窗口的最大化和最小化只在其父窗口中进行,在最大化时,子窗口占据主窗口的整个客户区;在最小化时,子窗口在主窗口中缩小为标题栏显示;

1.5.2 实例步骤:
本实例以一个简单的多文档文本编辑器为例,演示在Visual C++ 6.0中创建多文档应用程序的基本方法,实例步骤如下:

  1. 打开Visual C++ 6.0,单击“File”/“New”菜单。在弹出的对话框中选择项目类型为“MFC AppWizard(exe)”,在“项目名称”文本框中输入“MfcMdi”,单击“OK”/“确认”按钮进入应用程序向导界面;
  2. 在向导的Step1中,选择“Multiple docment”,其余选项用默认值。单击“Next”按钮进入下一步;
  3. 在接下来的应用程序向导Step2~Step5中,均直接单击“Next”进入下一个步骤;
  4. 在向导的Step6中,将CMfcMdiView类的基类修改为CEditView,其余选项采取默认设置,然后单击“Finish”按钮完成应用程序向导;
  5. 完成应用程序向导后的界面;

1.5.3 程序运行:

应用程序创建成功后,按F5键运行程序。可以看到,虽然没有编写任何代码,但由于MFC底层已经实现了大部分功能,本实例应用程序已经具有了基本的文本编辑器功能,可以保存、新建、打开、编辑和打印文本文件;

1.5.4 源程序解读:

  • 和单文档应用程序类似,多文档应用程序也可选择不支持“文档/视图”结构;
  • 通过本节实例可以看出,MFC在底层已经封装了大量实用功能,在一定程度上减少了应用程序的开发工作量;

1.5 多文档MFC应用程序实例相关推荐

  1. MFC让文档/视图结构程序支持滚动条

    MFC让文档/视图结构程序支持滚动条 2009-06-30 09:26要通过滚动条显示文档,还必须知道文档滚动到了什么位置:一旦用户拖动滚动条时要告诉视图改变在文档中 的位置.所有这些,由MFC的CS ...

  2. 基于MFC单文档的画图程序(小项目)

    基于MFC单文档的画图程序 前言 学习了一年多的MFC和Qt,对其基本用法已经熟练掌握,迫不及待的想实战一波,但是心急吃不了热豆腐,我还是踏踏实实的找一些既能复习以前知识的单子又不消耗我太多时间(最近 ...

  3. C++--在单文档的应用程序增加多个视图

    在mfc的单文档的应用程序(Application)设计时,一般是一种文档(Documnet)对应一种视图(View) .然而在有些时候我需要一种文档用多种视图来展现,具体步骤如下: 我们有两个假设 ...

  4. JDK文档是Java程序开发不可缺少的编程词典

    Java 构建商业应用程序或者某种物联网设备,构建了Android 操作系统,它为智能手机行业做出了杰出的贡献.借助 Android 操作系统,手机厂商才得以在早期与黑莓抗衡,之后又能够打破苹果的主导 ...

  5. 云脉文档管理小程序轻松解决文档管理难题

    手机h5访问地址:http://www.aipim.cn/docs 电脑端访问地址:http://www.yunmaiocr.com/goDoc 在日常处理办公文档过程中常常需要对纸质文档的文字内容进 ...

  6. 云脉文档管理小程序使办公更协同

    在日常的工作当中,我们往往不是独自办公,而是团队合作居多.现因疫情如遇在家办公,需进行频繁文件处理,降低工作效率,团队工作中,文件的传输发送.修改审核,不仅浪费时间,还会增加沟通成本.那么如何让团队成 ...

  7. 写一个可以一键统一调整word文档格式的程序

    要写一个可以一键统一调整 Word 文档格式的程序,可以使用 Microsoft Office Word 的 VBA 功能来实现. 步骤如下: 打开 Word 文档,在菜单栏中点击"开发人员 ...

  8. 使用Electron构建跨平台文档扫描应用程序

    Electron是一个用于与HTML,JavaScript和CSS一起构建跨平台桌面应用程序的框架. 由于Dynamic Web TWAIN也是一个用于扫描文档的跨平台JavaScript库,因此使用 ...

  9. PDF Focus .Net指在帮助您开发需要转换任何PDF文档的应用程序

    PDF转换EXCEL.WORD简单介绍 .Net程序集提供了将API转换为全部的API:DOCX,RTF,HTML,XML,文本,Excel,.Net和C#中的图像. PDF Focus .Net旨在 ...

最新文章

  1. 在线报名竞赛网站java源码_我用Java写出了一个QQ!可在线聊天(附源码)~
  2. angular2集成highchart
  3. 【Python】掌握Python中的索引和切片
  4. 怎么获取web项目的webroot根目录下面的文件夹的路径?
  5. android 界面切换教程
  6. IOS开发基础之使用Xcode12.3连线storyboard与属性
  7. Zabbix server is not running
  8. 数据结构与算法--面试必问AVL树原理及实现
  9. SpringBoot—自定义线程池及并发定时任务模板
  10. 个人简介页面如何设计?集设网优秀案例给你灵感
  11. 12C 新特性--全库缓存
  12. 如何用blend创建自定义窗口
  13. 使用 Python 和 Flask 实现 RESTful services
  14. 4月4日 逻辑回归(Logistic Regression-LR)与SVM
  15. linux权限管理的设计,Linux权限管理漫谈之用户切换
  16. 如何处理“WLAN没有有效的IP配置”这一问题?
  17. ES6中...省略号的意思
  18. SpringBoot集成rabbitmq错误:org.springframework.amqp.AmqpConnectException: java.net.ConnectException的解决办法
  19. Mac ubuntu安装无线驱动
  20. SpringCloud之Eureka实战和架构设计解析

热门文章

  1. 计算机CAD专业实训周志,cad实训报告总结(共7篇).doc
  2. 开源软件基金会的崛起与演化
  3. 外汇的作用_国际汇兑实务
  4. python开发报表系统详细操作流程_python实现报表自动化详解
  5. 互联网公司招聘--百度--运营岗-2015年笔试题
  6. 外勤365显示服务器忙,外勤365产品培训FAQ.pdf
  7. 来自「正义」程序员的反击之 star 净网行动
  8. 进程和线程:进程的开销比线程大在了哪里?
  9. 好记星不如烂笔头!就从今天开始吧~
  10. 电子合同打印出来有法律效力吗