开发 MFC 应用的一般过程
1.创建用户接口
一般使用 Visual C++内置的资源编辑器创建用户接口,用户接口主要包括菜单、加速键、
对话框、位图、图标、光标、工具栏以及其他资源等。通常,应用向导创建的资源文件包含
了工程所需要的许多资源,但也允许使用资源编辑器对原有的资源进行编辑,或者添加新的
资源。
2.映射命令消息
命令消息的处理接口一般为菜单和工具栏,使用类向导( ClassWizard)或者向导栏
( WizardBar)为菜单和加速键映射命令消息处理函数,然后,为工具栏中的每个按钮分配一
个合适的命令 ID,以便将其映射到菜单或者加速键命令。接着,使用类向导或者类视
( ClassView)直接跳到源代码中相应函数的位置,添加函数的实现代码。最后使用内建的调
试工具重建程序,以便测试处理函数的有效性。
3.对话框编程
使用对话框编辑器设计对话框模板,然后,使用类向导创建处理对话框的类和代码。
可以定义对话框控件的初始化以及数据验证的方式,接着,使用类向导为对话框的控件添
加相应的成员变量。如果需要的话,也可以在添加控件变量时指定用户向控件输入的验证
规则。
4.添加新类
使用类向导、向导栏或者类视创建另外的文档类、视图类或者框架窗口类,也可以创建
另外的数据库记录集类、对话框类以及其他的任何类。
5.实现文档类
实现应用特定的文档类主要是为其添加用于保存数据结构的成员变量,以及对数据提供
用户接口的成员函数。如果需要,那么还要实现“打开”、 “保存”以及“另存为”等命令,
此时需要编写文档类的 Serialize 成员函数。
6.实现视图类
因为文档的视图类有的时候不止一个,所以要实现所有与文档类相关的视图类。视图类的实现部分主要在于使用类向
导映射用户接口成员函数。另外,如果需要支持多页打印则需重载视图类的成员函数。最后,一般视图类的 OnDraw
成员也需要编写,视其具体需求而定。
7.实现框架类
框架类主要用于实现命令消息的处理等。因为该类主要负责命令的接收,不过,它首先将命令消息传递给视图和文档,
因此,不是过分依赖文档和视图的消息可以由框架类负
责处理。
8.创建、调试应用
所有的步骤完成之后,可以重建应用并且往往经过多次调试才能最终发布。上述步骤涵盖了一般应用程序的创建过程,
不过一些复杂的应用开发可能不止上述 8 个步骤。
——引用自《精通MFC程序设计》
开发 MFC 应用的一般过程的更多相关文章
- MFC程序的启动过程——先全局对象theApp(第一入口),后WinMain(真正入口),会引爆pApp->InitInstance从而创建窗口(程序员入口)
原文出自:http://blog.csdn.net/yuvmen/article/details/5877271 了解MFC程序的启动过程,对于初学者来讲,了学习MFC很有帮助:对于不常用VC的人来说 ...
- 我在开发第一个Swift App过程中学到的四件事
本文转载至 http://www.itjhwd.com/wzkfyigeswiftsjs/ 译者注:本文作者Greg Heo,这是他为讲授iOS 8 App Extensions视频教程而实际使用Sw ...
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...
- VS2010开发MFC ActiveX,摄像头拍照上传Webservice(1)
最近工作项目,BS中需要用到摄像头拍照,需要存储本地,同时上传到服务器,尝试使用vc++做ActiveX来实现. 完全没有使用过vc,上网搜索各种知识,初步完成.在这里记录下有帮助的资料. 第一步:编 ...
- Xcode8开发iOS10推送通知过程
iOS10发布后,简书优先开发增加了iOS10的新通知.本文分享整个feature的开发过程遇到的问题. 1.工程配置 Xcode8发生了很大的变化,直接打开原来的工程编译运行,这个时候是获取不到Pu ...
- 搭建OpenWrt开发环境(包括编译过程)
OpenWrt是一个高度模块化.高度自动化的嵌入式linux发行版,其编译和安装过程比普通的linux发行版而言,要简单太多了.如果您是新手,您那恐惧的心大可放到肚子里,呵呵.对于新手来说最麻烦的恐怕 ...
- cmake编译dcmtk,并利用vs2010 进行开发mfc 程序
这几天要处理 医学图像数据,经同学推荐 采用 dcmtk 关于 编译 dcmtk 是可参考如下blog 1. http://blog.csdn.net/okaimee/article/details/ ...
- DB2开发系列之二——SQL过程
1.SQL 过程的结构 1)SQL过程的结构 CREATE PROCEDURE proc_name IN, OUT, INOUT parameters optional clauses S ...
- javaee开发工具及环境配置过程
在配置javaee开发环境的过程中遇到过很多问题,在此系统的整理一下我之前的配置过程 注:配置过程学习自<JSP&Servlet学习笔记(第二版)>详细过程可以阅读此书.在文章的最 ...
随机推荐
- Cnblogs 的 MetaWeblog 的接口发生了变化
Cnblogs 的 MetaWeblog 的接口发生了变化 */--> Cnblogs 的 MetaWeblog 的接口发生了变化 最近把 emacs 重新配置了一下,把 cnblogs 包也重 ...
- Codeforces - 1195E - OpenStreetMap - 单调队列
https://codeforc.es/contest/1195/problem/E 一个能运行但是会T的版本,因为本质上还是\(O(nmab)\)的算法.每次\(O(ab)\)初始化矩阵中的可能有用 ...
- SR-IOV
SR-IOV 来源 http://blog.csdn.net/liushen0916/article/details/52423507 摘要: 介绍SR-IOV 的概念.使用场景.VMware 和 K ...
- 【记录】mysql查询语句对于为null和为空字符串给出特定值处理
SELECT if(IFNULL(filedName,"指定字符串")="","指定字符串",filedName) '重命名的字符名' FR ...
- 06.Linux-RedHat系统网卡服务连不上活跃连接路径变化
问题:在新装的系统中,重启网卡的时候出现如下报错 [root@localhost ~]# service network restart 正在关闭接口 eth0: 设备状态:3 (断开连接) [确定] ...
- Linux就该这么学07学习笔记
参考链接:https://www.linuxprobe.com/chapter-07.html RAID磁盘冗余阵列 RAID 0 RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串 ...
- java this关键字的用法
- python搭建服务,传输文件
一.进入需要共享的文件目录 #cd /home #python -m SimpleHTTPServer 二.浏览器访问资源 再浏览器地址栏输入: 服务器IP:8000 如图:
- Linux 给用户 赋某个文件夹操作的权限
https://my.oschina.net/cqyj/blog/1796047 在root用户登录的情况,赋予opt目录给liuhai这个用户权限 示例代码: # 将目录/opt 及其下面的所有文件 ...
- orcad原理图与PSPICE模型库名称
Vendor PSpice Model Description Advanced Linear Devices adv_lin.lib Library of op-amps Advanced Line ...