进入MFC讲坛的前言(一)】的更多相关文章

框窗.视图和文档及其关系 MFC架构的另外一个特色是它的框窗.视图和文档这个三位一体的结构,它是一个典型的MVC(Model.View and Controler)结构.严格的讲,框窗不属于MVC中的任何一项,MFC设计者将框窗加进来是为了能更好的协调文档 和视图.而MVC中的Controler这一项,则是应用本身的应用逻辑. 在这三者中,需要特别注意的.也最能够体现个人的编程水平的是框窗.一旦三者都存在于内存中,它们的关系就变得很简单.本章将讨论下述内容: 1.MFC的RTTI(Run Tim…
MFC的消息映射机制 MFC的设计者们在设计MFC时,紧紧把握一个目标,那就是尽可能使得MFC的代码要小,速度尽可能快.为了这个目标,他们使用了许多技巧,其中很多技巧体现在宏的运用上,实现MFC的消息映射的机制就是其中之一. 同MFC消息映射机制有关的宏有下面几个: DECLARE_MESSAGE_MAP()宏 BEGIN_MESSAGE_MAP(theClass, baseClass)和END_MESSAGE_MAP()宏 弄懂MFC消息映射机制的最好办法是将找出一个具体的实例,将这些宏展开,…
MFC的WinMain 使用MFC编程的程序员刚开始都会提出这样一个问题:我的程序是从哪儿开始执行的?回答是:从WinMain()开始执行的.提出这样的问题是由于在他们所编写的MFC应用中看不到WinMain()函数.这个函数是隐藏在MFC框架中,MFC的设计者将它作得很通用(这主要得益于Window的消息驱动的编程机制,使得作一个通用的WinMain()很容易),因此在一般情况下,无需更改WinMain()的代码,MFC的设计者也不提倡程序员修改WinMain()的代码.在MFC中,实际实现W…
在这里,我想谈谈自己学习MFC的一些体会.我是从1997年才开始在Window下编写程序的.在这之前,我编写过一些DOS程序,包括一个简单的全屏幕编辑器和一个带函数的表达式解释器,都是一些小的程序.Window 3.1流行后,我开始在它下面编写程序. 从编写DOS程序到编写Window程序,需要从编程思想上作一个比较大的调整.在DOS下编写程序,程序的总体流程完全由应用程序自己控制:但在Window下,程序的总体流程是由操作系统控制的,这一点对在DOS下“胡作非为”的DOS程序员而然,特别不习惯…
MFC中的窗口创建及窗口消息映射 我经常碰到有人问我有关窗口创建的问题,他们经常把用HWND描述的系统窗口对象和用CWnd描述的MFC的窗口对象混淆不清.这两者之间是紧密联系在一起的,但是MFC为了自身的管理,在CWnd中加了一些额外的内容,包括如何从HWND生成CWnd. 在MFC中,有几种典型的窗口对象,CWnd描述的一般窗口对象,CView描述的视图对象,CFrameWnd描述的SDI框窗对象,CMDIFrameWnd描述的MDI框窗对象等等.在这一章中,主要讨论下述内容: MFC中窗口的…
本系列主要偏重于理论方面的知识,目的是打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑.本系列也会涉及到VC++的原理性的东西,同样更重视实用性,学完本系列以后,基本的界面程序都能很容易编写出来. VC++简介 VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别在于,C++是语言,而VC++是用C++语言编写程序的工具平台.VC++不仅是一个编译器更是一个集成开发环境,包括编辑器.调试器和编译器等,一般它包含在Visual Studio中.Vi…
鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了.但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口.鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序. C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑.本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基…
 前言 前些天应好友之拖,帮忙设计一个简单的图像处理的小软件.朋友把核心算法封装好了,但是是用openCV类似于console的编程环境,要我在此基础上改成MFC桌面程序.下图是做成之后的效果: 我是两年前稍微学了点MFC的知识,这两年中基本没有涉及,因为诸多相同的需求都可以用C#来搞定.这个本来也是想用C#来弄,可是我朋友用了openCV的相关函数封装了核心的“美颜算法”,我就只好重温经典了! 本文只涉及开发该小软件中与MFC控件相关的操作技巧,不提供朋友的“美颜算法”,还请各位见谅! 工程中…
前言 由于早期的图像处理程序基于VC6.0,MFC也是采用VC6.0开发的.在实际处理中,我不仅需要界面的显示,有很多时候,我需要算法处理的过程中的信息,比如每个阶段的耗时,处理的图像大小,以及如果需要迭代,当前的迭代次数. 当然,有很多方法可以解决上述需求,譬如可以通过FILE创建一个文件,然后把相关信息写入. 但,那都不够直观 我希望的是,它能够像VC或VS在编译的时候,在下方有个「debug window」,将运行过程中的信息实时显示. 第一步 创建一个single document vi…
前言 Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本.下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表. 1.定义控件对应变量 假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件拖放到上面.打开 Class Wizard,添加控件对应变量,如:CComboBox m_cbExamble…
十年MFC经历认识的Microsoft技术[原创] 孙辉 自从2005年3月8日下午16时“十年MFC经历认识的Microsoft技术”以帖子的方式发表于CSDN论坛后,引起了许多网友得好评,使得笔者诚惶诚恐,考虑到该贴过长(人气指数为5000),因此转移到Blog上,许多网友对此帖的评语只好省略,在此鄙人谢过了!为感谢网友的支持,本人希望今后能发出新的帖子以回报网友对我的鼓励,再一次谢谢! 初识MFC         我最初知道MFC大概是在1993年,那个时候Visual  C++还没面世,…
鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够.以此教程的知识为基础,学习VS2010/MFC较为深入的内容已非难事.作为本教程的最后一课,鸡啄米将对前面所讲内容进行目录归纳,并对这八个月加班加点的努力进行总结. 一.VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言 VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第…
前言 徐旭东老师说过学者就应该对知识抱有敬畏之心,所以我的博客的标题总喜欢加上"简单"二字,就是为了提醒自己,自己所学知识只是皮毛,离真理还远矣. DES 算法 DES算法是密码体制中的对称密码体制,明文按64位进行分组,密钥长64位(其中有8位是奇偶校验位,不参与 DES 运算),参数有三个:key.data.mode.即要加密或者解密的数据.密钥.加密还是解密. 考虑到算法注重的是性能,且不涉及面向对象的思维,所以一开始选择 C 语言开发,但是为了良好的交互界面,所以最终选择了 M…
前言:从这学期开始就一直在学习自绘控件(mfc),目标是做出一款播放器界面,主要是为了打好基础,因为我基础实在是很烂....说说我自己心得体会以及自绘控件的方法吧,算是吐槽吧,说的不对和不全的地方,或者有更好的方法,请不吝赐教. 我的机器环境是:Windows7旗舰版 Service Pack 1,Visual studio 2005 1).重绘某个控件时,强烈推荐使用子类化方法,比如想自绘Button控件, 首先添加自己的类CMYButton 继承自 CButton ,声明一个CMYButto…
前言:从这学期开始就一直在学习自绘控件(mfc),目标是做出一款播放器界面,主要是为了打好基础,因为我基础实在是很烂....说说我自己心得体会以及自绘控件的方法吧,算是吐槽吧,说的不对和不全的地方,或者有更好的方法,请不吝赐教. 我的机器环境是:Windows7旗舰版 Service Pack 1,Visual studio 2005 1).重绘某个控件时,强烈推荐使用子类化方法,比如想自绘Button控件, 首先添加自己的类CMYButton 继承自 CButton ,声明一个CMYButto…
前言 由于工作需要,这几天学了一点MFC,在AFX里看到很多熟悉的东西,如类型信息,序列化,窗口封装和消息分派.几乎每个界面库都必须提供这些基础服务,但提供的手法却千差万别.MFC大量地借用了宏,映射表来实现,而VCL则更多的在语言级别上给与支持.这其实是很容易理解的,因为C++是一个标准,不会因某个应用而随便扩展语言:相反Delphi完全由一个公司掌握,因此每支持一项新技术,变化最大的往往是语言本身. 学习MFC的代码,再对照VCL的实现,这真是一个很有意思的过程,其中可以看到两个框架在一些设…
wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 1 前言 1.1 关于"导引" 大学中的"C++程序设计"课程,以掌握主要的C++语法,并运用其解决一般的计算问题为目的.学生在学习中编出的程序,在"长相"上,与实际的产品不太一样.我的学生感慨,为何我编程序…
[前言] 把Cocos2dx渲染到另一个应用程序框架中的方法,在2.x时代有很多大神已经实现了,而3.x的做法网上几乎找不着.这两天抽空强行折腾了一下,不敢独享,贴出来供大家参考. [已知存在的问题] 程序退出时会发生非常严重的内存泄漏,博主检查了很久,但技术不够暂时无法解决.如果有大神能搞定,求告知一下做法,谢谢! 在程序从开始运行到关闭期间,有且仅有一个cocos2dx窗体存在时可以选择性无视内存泄漏.如果非常在意这一点,建议使用cocos2d-x 2.2.6这个版本,放在MFC中的内存泄漏…
MFC教程 还有VS2015的视频教程 试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 一.VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言       VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第二部分:VS2010/MFC应用程序框架 VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)       VS2010/M…
由于上一个教程做界面用的是MFC,所以这里不得不说一下MFC的历史,请看正文:   原文链接:http://blog.csdn.net/sunhui/article/details/319551 作者:孙辉   十年MFC经历认识的Microsoft技术[原创] 孙辉 自从2005年3月8日下午16时“十年MFC经历认识的Microsoft技术”以帖子的方式发表于CSDN论坛后,引起了许多网友得好评,使得笔者诚惶诚恐,考虑到该贴过长(人气指数为5000),因此转移到Blog上,许多网友对此帖的评…
前言:在用mfc框架编写应用的时候,如果注意,你会发现在App应用类的InitInstance()函数中,初始化时总有一个 SetRegistryKey("String");  这是什么函数呢,设置记录字符串,不明觉厉,于是用心去查了一下,分享给大家. 总起:其实很明了,如果你的应用需要使用注册表,则它为你提供了很便利的方法,当然如果不使用系统注册表,这句可以注释掉. SetRegistryKey Causes application settings to be stored in…
1.前言 前一篇笔记记录了怎么修改PE,此篇记录下如何利用自身的资源文件. 2.编程思路 获得资源句柄 - 获得资源文件大小 - 加载资源文件 - 锁定资源并获得其指针. 3.实践代码 1)编译以下代码将EXE作为资源导入到MFC的资源. 服务端 声明三个已经初始化值的变量 // URL配置器.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "stdafx.h" int main(int argc, char…
前言 vs2015竟然可以完美打开工程,哈哈可以直接生成类图了.由于内容较多,所以根据内容的重要性会安排详略. https://github.com/bajdcc/GraphEditor/releases/tag/1.0 主要的内容: MFC的基本使用介绍 4种图形的绘制 图形的事件处理 撤销与恢复功能的实现 其他功能 介绍 MFC好歹是必学课目,其实搞GUI有多种方法,可以用Qt.WPF.SWT.Electron等等,之所以要学MFC是因为C++,还因为vc6.0体积小安装快,不需要安装其他重…
转:https://blog.csdn.net/hkcsdn/article/details/52908748       前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM). ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象.统一数据传输.OLE文档.属性页.永久存储以及OLE自动化等. Activ…
原文地址:http://www.vckbase.com/document/viewdoc/?id=1486 浏览器的定制与扩展       作者:李汉鹏 下载源代 码  本文分如下章节: 前 言 在 MFC中使用浏览器 怎 样扩展或定制浏览器 定 制鼠标右键弹出出菜单 实 现脚本扩展(很重要的external接口) C++ 代码中如何调用网页脚本中的函数 定 制消息框的标题 怎 样定制.修改浏览器向Web服务器发送的HTTP请求头 怎 样修改浏览器标识 去 掉讨厌的异常警告 怎 样处理浏览器内的…
首先我们把题目所示的要求分为两个问题: 问题一:如何给基于MFC的单文档视图类里面添加 控件.就是那种类似工具箱里面的控件. 问题二:如何给已经添加的控件 定义一些消息的响应函数. ×××××××××××××××××××××××××××××××××××××××××××××× 前言: 如果是给对话框添加一个控件 ,然后给这个控件添加消息响应函数是非常简单.IDE有一整套向导可以帮助我们干这个事情. 但是如果是直接给视图类添加控件 似乎就比较困难了. 但是很多牛X的人看到框架类可以像一个箩筐丝的把…
前言:这学期学习MFC(有点过时的东西),上课时,老师讲到获取当前活动指针,获取视图指针,文档指针,文档模板指针等(已晕) 后来下来真正写代码的时候发现这些几乎都是需要用到的东西,所以特此记录下,让自己以后方便查找,当然也希望能够帮助到同样有这些疑问的童鞋 本文主要内容转载自http://www.jizhuomi.com/software/221.html  一.概述 在VS自动生成的代码中,框架类继承于CFrameWndEx类,文档类继承于CDocument类,视图类继承于CView类. CF…
前言 学习了鸡啄米网页的前三部分后,我们就可以做一个小软件出来了,我选择先做一个计算器. 这是Win7系统自带的计算器: 为了提升成就感,我将计算器的大部分内容去除,于是就变成这样: 这样就只剩下了16个按钮和一个文本显示框,这样就简单多了! 新建一个MFC对话框应用程序 打开VS2010点击Start Page中的New Project(新建工程),或者菜单栏File -> New -> Project 弹出新建项目对话框,在左侧选择MFC,然后在中间选择MFC Application 在下…
前言一直利用Qt库做Ui设计,但针对于一些MFC项目,掌握一些必要的MFC开发技巧还是很有必要的.这篇博客里就将自己所学的一些MFC浅显知识记录一下,方便今后的学习.博客里只记录关键步骤. 一.新建MFC项目选择:基于对话框MFC的使用: 在共享DLL中使用MFC (程序运行需要dll) 在静态库中使用MFC (程序较大,运行时不需要dll) 设置MFC程序主框架样式和标题 高级功能 若是用不上“ActiveX控件”可以去掉勾选,若要涉及到网络编程就把“windows嵌套字”选上 完成 二.MF…
一.VC++与MFC 讲VC++免不了要提MFC,MFC全称Microsoft Foundation Classes,也就是微软基础类库.它是VC++的核心,是C++与Windows API的结合,很彻底的用C++封装了Windows SDK(Software Development Kit,软件开发工具包)中的结构和功能,还提供了一个应用程序框架,此应用程序框架为软件开发者完成了一些例行化的工作,比如各种窗口.工具栏.菜单的生成和管理等,不需要开发者再去解决那些很复杂很乏味的难题,比如每个窗口…