我的MFC学习之路(一)
因为项目需求,我开始应用MFC写程序。具体接触MFC的时间大概也有两个月了。现在的水平算是刚刚踏入了MFC大门的半只脚。目前能基本使用MFC Class Wizard,可以根据实例仿照完成需求,小范围的灵活运用。但是,对于庞大啊MFC来说,我窥探的只是冰山一角。它的消息映射机制,许多类的用法等等还只是一知半解。
刚接触MFC时,发现这简直使用一个庞然大物,完全不知道从哪里开始下手剖析它。这里推荐孙鑫的20集教学视频和侯捷的《深入浅出MFC》,这两个是入门必备。我个人是直接先看视频。先上链接http://blog.csdn.net/roger_ge/article/category/461259/1,这个是别人整理的视频学习笔记。我认为视频也不必要一次看完,首先看第一课至第三课,大致了解Windows编程、C++特性还有MFC内部结构,这个对于以后的编程是很重要的。视频通过实例演示讲解,每一集都会新建一个工程。视频每一集大概有两个小时,前三课主要在理论,光听的话会很枯燥,如果能坚持看完固然好,看不完也不勉强。这时就可以找一本《深入浅出MFC》来看,视频的前三课内容都在书中的前七章。此本书的优势在于,文笔生动形象,易读性强,看起来不是那么枯燥。当然第一次看绝对很多地方是看不懂的,这个不必太在意,我们只需像看小说的时候过一遍就行了,对那些名词留一个印象,至少今后遇到了应该知道在哪本书里见过。
当把以上任务完成后,我至少知道MFC的全称是什么了。接下来的学习我更推荐看视频,因为视频中孙鑫老师会以一个小型的项目会例子,一步一步的教大家编写程序。这时我们就需要建立一个工程,名字不要和视频中的一样。然后一步一步的跟着视频去编写程序,最后运行。当程序过了编译并且生成了一个界面的时候,我非常开心。虽然我想了想发现代码并不是自己的,而且抄代码都需要教,但是那有怎样呢?毕竟工程名是自己的,还是很开心。我觉得这种开心就是因为兴趣所在吧。如果有时间,大家可以一个一个视频跟着学。对于我来说,我根据需求选择性的学习。当视频看完后,我投入了实战中。但是突然发现,看完了视频要写自己的程序,依然无法下手。这时不应急躁,我继续边看边视频边。第一次看视频是完全的复制,第二次则是根据视频仿造符合自己需求的程序。同时当我们遇到问题时,还可以去网上寻找答案或是发帖求助。比较好的论坛有CSDN和博客园。经过了第二次学习并自己写出了程序,这时是很有成就感的。同时我能大概理解了doc/view,消息映射,虚函数和对话框控件等等的运用,能够基本的使用MFC的操作。
达到这个程度时,接下来的东西就学的比较快了。我们可以接触比较大型一点的工程,接触更多的类。每个类的用法都可以从网络搜索到,有能力的可以直接利用MSDN索引类名。经过对工程的需求的一个一个完成,我们学到的东西会越来越多。在写代码的过程中,我会遇到很多让人绞尽脑汁的BUG,有时调试了很久都无法解决。这时我会去各个论坛发帖求助,上面提到过的论坛有很对大牛存在,也会很热心的解答。我知道我现在遇到的BUG越多,我学到的东西也就会越多。
我主张在学习的过程中去做,边学边做,根据需求去学习,这样我们获得的知识就会更深刻的记住,并且能把知识能运用到实际中去,编程尤其重要。但是光学习写代码而不去思考,不去在遇到问题的时候探索问题出现的原因,而只是在意问题的解决方法时,就会让我们永远不能灵活运用,自由创新的去编写程序,而是一直在重复着前人写过的代码。所以我的学习经验总结成一句话:“多写,多看,多想”。
我的MFC学习之路(一)的更多相关文章
- mfc学习之路--如何删除通过控件新增的变量
刚刚学校mfc的人都会遇到这样一个问题(比如我),在照做书做一个mfc程序,给控件新增变量时变量类型错了,但是变量名对了,然后想要加个正确的时候提示"已经存在该对象",然后就傻了, ...
- 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)
初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...
- 我的QT5学习之路(一)——浅谈QT的安装和配置
一.前言 说到Qt,不能不说到C++,这门伟大的语言.因为其面向对象的编程思想和陡峭的学习曲线,一开始学习起来很是吃力.Qt从QT4开始基本封装了很多C++的工具库和界面库,而且支持跨平台,这是它最大 ...
- Qt 学习之路 2(2):Qt 简介
Home / Qt 学习之路 2 / Qt 学习之路 2(2):Qt 简介 Qt 学习之路 2(2):Qt 简介 豆子 2012年8月21日 Qt 学习之路 2 43条评论 Qt 是一个著名的 ...
- jQuery学习之路(1)-选择器
▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- RPC远程过程调用学习之路(一):用最原始代码还原PRC框架
RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- [精品书单] C#/.NET 学习之路——从入门到放弃
C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...
随机推荐
- 二叉搜索树算法详解与Java实现
二叉查找树可以递归地定义如下,二叉查找树或者是空二叉树,或者是满足下列性质的二叉树: (1)若它的左子树不为空,则其左子树上任意结点的关键字的值都小于根结点关键字的值. (2)若它的右子树不为空,则其 ...
- C#开源资源大汇总
C#开源资源大汇总 C#开源资源大汇总 一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行 ...
- Struts中文件的上传与下载
前面学到的用组件去上传 前台: 1.post表单提交 2.表单类型 multipart/form-data 3.intput type=file 后台: Apach提供的FileUpload组件 核心 ...
- Asp.Net Core- 多样性的配置来源
我们知道,ConfigurationProvider提供将数据源转换为字典的功能,数据源可以分为很多种,比如:物理文件.数据库.内存变量等等.物理文件又包括很多种类型的文件,比如:xml.json等等 ...
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
转载:http://blog.csdn.net/xiaanming/article/details/12684155 转载请注明出处:http://blog.csdn.net/xiaanming/ar ...
- 将某个组中的账户移动到新的OU下
将某个组中的账户移动到新的OU下 #定义组名 $groupname = "testg" #定义新的OU名称 $newou = "OU=oo,OU=Admins,dc=dd ...
- 连载:面向对象葵花宝典:思想、技巧与实践(32) - LSP原则
LSP是唯一一个以人名命名的设计原则,并且作者还是一个"女博士" ======================================================== ...
- Effective C++ 条款45
本节条款的题目是运用成员模板接受全部兼容类型 作者阐述自己的观点是通过智能指针的样例. 在学习本节条款之前我们要先明确关于隐式转化的问题 例如以下代码: #include<iostream> ...
- spring关于“transactionAttributes”的相关配置
spring关于"transactionAttributes"的相关配置 <bean id="baseTransactionProxy" class=&q ...
- [React Fundamentals] Development Environment Setup
In this lesson we'll setup a simple build process for converting our ES6 React components into ES5 u ...