基于MFC的单文档,多文档,对话框应用程序
从类的角度区分:
基于对话框(3个类):
- CAboutDlg
- 程序名App
- 程序名Dlg
单文档(5个类):
- CAboutDlg
- CMainFrame
- 程序名App
- 程序名Doc
- 程序名View
多文档(6个类):
- CAboutDlg
- CMainFrame
- 程序名App
- 程序名Doc
- 程序名View
- CChildFrame
-------------------------------------------------------------------------------
多文档
CAboutDlg(“关于”对话框)
CAboutDlg()
DoDataExchange(CDataExchange* pDX)
CChildFrame(子框架类)
AssertValid()
CChildFrame()
~CChildFrame()
Dump(CDumpContext& dc)
PreCreateWindow(CREATESTRUCT& cs)
CMainFrame(主框架类)
AssertValid()
CMainFrame()
~CMainFrame()
Dump(CDumpContext& dc)
OnCreate(LPCREATESTRUCT lpCreateStruct)
PreCreateWindow(CREATESTRUCT& cs)
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CMyApp(应用程序类)
CMyApp()
InitInstance()
OnAppAbout()
CMyDoc(文档类)
AssertValid()
CMyDoc()
~CMyDoc()
Dump(CDumpContext& dc)
OnNewDocument()
Serialize(CArchive& ar)
CMyView(视图类)
AssertValid()
CMyView()
~CMyView()
Dump(CDumpContext& dc)
GetDocument()
OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
OnDraw(CDC* pDC)
OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
OnPreparePrinting(CPrintInfo* pInfo)
PreCreateWindow(CREATESTRUCT& cs)
Golbals(全局)
theApp
-------------------------------------------------------------------------------
单文档
CAboutDlg(“关于”对话框)
CAboutDlg()
DoDataExchange(CDataExchange* pDX)
CMainFrame(主框架类)
AssertValid()
CMainFrame()
~CMainFrame()
Dump(CDumpContext& dc)
OnCreate(LPCREATESTRUCT lpCreateStruct)
PreCreateWindow(CREATESTRUCT& cs)
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CMyApp(应用程序类)
CMyApp()
InitInstance()
OnAppAbout()
CMyDoc(文档类)
AssertValid()
CMyDoc()
~CMyDoc()
Dump(CDumpContext& dc)
OnNewDocument()
Serialize(CArchive& ar)
CMyView(视图类)
AssertValid()
CMyView()
~CMyView()
Dump(CDumpContext& dc)
GetDocument()
OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
OnDraw(CDC* pDC)
OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
OnPreparePrinting(CPrintInfo* pInfo)
PreCreateWindow(CREATESTRUCT& cs)
Golbals(全局)
theApp
-------------------------------------------------------------------------------
对话框
CAboutDlg(“关于”对话框)
CAboutDlg()
DoDataExchange(CDataExchange* pDX)
CMyApp(应用程序类)
CMyApp()
InitInstance()
CMyDlg(对话框类)
CMyDlg(CWnd* pParent /*=NULL*/)
DoDataExchange(CDataExchange* pDX)
OnInitDialog()
OnPaint()
OnQueryDragIcon()
OnSysCommand(UINT nID, LPARAM lParam)
HICON m_hIcon;
Golbals(全局)
theApp
-------------------------------------------------------------------------------
CXXXApp是应用程序类,负责程序的启动和结束
CXXXDlg是主对话框类,程序的主界面。
单文档就是一个窗口只能处理一个文档,多文档就是同时可以处理多个,共享工具栏,菜单栏什么的,对话框就是一个提示用户进行选择或者确认的窗体。对话框模板适合于做交互界面,单文档模板适合于做文件处理,多文档模板适合于做多文件处理。不过,还是没法明确这个问题。
对话框模板适合于做交互界面
单文档模板适合于做文件处理
多文档模板适合于做多文件处理
单文档程序打开多个文件会产生多个进程;
多文档程序打开多个文件只需一个进程。
单文档只能进行一份文档或图片的操作,就是你不能同时在一个程序打开两个文件
多文档可以用多个窗口显示不同的信息,进行不同的任务,有多个视图环境,可以同时操作多个文件
基于MFC的单文档,多文档,对话框应用程序的更多相关文章
- MFC中 给基于CFormView的单文档添加背景图片
关于基于CFormView的单文档应用程序,添加一个图片背景的方法之一如下: 下面是利用LoadImage实现.(先在程序目录中添加背景图片back.bmp) 1.在view类中添加类成员变量:(为C ...
- 创建MFC应用程序的类型:单文档+多文档+基于对话框
单文档支持文档视图架构.数据的保存--(读取--改动)文档类功能--显示(视图类功能),比較方便. 基于对话框,主窗体是对话框类型.能够方便的使用控件,所见即所得的编程,比較方便. 单文档类似&quo ...
- MFC设置单文档保存格式以及标题
在使用MFC编写单文档程序时,有时候需要将编辑的内容序列化为文件,使该文件可以直接以自己的程序打开,这时候需要在保存时将文件后缀改为我们想要的格式. 步骤 打开String Table,找到IDR_M ...
- VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)
前面一节中鸡啄米进行了文档.视图和框架的概述,本节主要讲解文档.视图.框架结构中各对象之间的关系. 各个对象之间的关系 文档.视图.框架结构中涉及到的对象主要有:应用程序对象.文档模板对象.文档对象. ...
- MFC用串行化实现文档存储和读取功能
在面向对象的程序设计中,一般都是用二进制文件来保存文档资料.在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件:利用串行化存取文件.其中用CFil ...
- 懒得写文档,swagger文档导出来不香吗
导航 前言 离线文档 1 保存为html 2 导出成pdf文档 3 导出成Word文档 参考 前言 早前笔者曾经写过一篇文章<研发团队,请管好你的API文档>.团队协作中,开发文档的重 ...
- 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中
MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ...
- SharePoint 更新文档库文档标题(Title)字段
前言:记录下写代码中遇到的小问题,帮同事写一个批量更新文档库标题字段的小程序,本来以为就Update一下就可以了,10分钟可以搞定.结果10分钟过去了,代码写好了,执行起来不报错,调试也没问题,只是要 ...
- 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案
使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...
随机推荐
- UVA1103
题意:输入以16进制的矩阵,先转换成2进制,之后输出形成的图案. 思路:先处理掉无关图案的0,之后一个图案一个图案的遍历,识别图案的方法就是有多少个圈圈.找到一个就全部标记为-1.并且记录圆圈的数目. ...
- Bash Shell内建命令和保留字
Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与read ...
- C/C++中const的用法 分类: C/C++ 2015-07-05 00:43 85人阅读 评论(0) 收藏
const是C语言的关键字,经C++进行扩充,变得功能强大,用法复杂.const用于定义一个常变量(只读变量),当const与指针,引用,函数等结合起来使用时,情况会变得复杂的多.下面将从五个方面总结 ...
- Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)
摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...
- Centos6.5 设置Tomcat8 service服务实现自启动和服务管理
Centos6.5 设置Tomcat8 service服务实现自启动和服务管理 将tomcat设置成像apache,nginx一样. 用serviec xxxx start/stop/restart ...
- PHP 数组转码
/** * 数组转码 * @param array $arr 要转码的数组 * @param string $in_charset 输入的字符集 * @param string $out_charse ...
- android 开发学习笔记 (一)
每个app 都有一个自己的 linux 进程: 每个进程都在自己的虚拟机里执行 两个app 可以跑在一个进程,一个vm里 android app 四大组件:activity,content provi ...
- WPF ListBox
记录一些ListBox的用法 设置ListBox选中项的背景颜色 如何为标准的ListBox添加ItemClick事件 连续选择同一项时SelectionChanged 事件不响应的问题 1.设置Li ...
- Rails : 产品环境(生产环境)的部署
bundle install rails server (默认为开发环境) rails server -p80 -e production (指定为生产环境 ,并自定义指定站点端口) rake RAI ...
- JQuery 上传文件插件 Uploadify1
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. <link href="~/Content/themes/uploadif ...