我的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 ...
随机推荐
- Exercise: Rot13 Reader
package main import ( "io" "os" "strings" "fmt" ) type rot13 ...
- position绝对剧中
function loginH(){ var loginH = $('.sign-main-bg .sign-main-content'); var h = loginH.height(); logi ...
- DataTable 基本转换简单实例
var query = from dt in tblProduct.AsEnumerable() where dt.Field<string>("StockNo") = ...
- mysql之select+五种子句的理解
select 可以包含很复杂,很丰富的逻辑,最能考验一个人的逻辑思维能力和sql语句的掌握程度,我是这么认为,以前的很多次面试几乎都死在它手上,所以才有了今天的这篇日志,下定决心把它学好. where ...
- 【转】Netty那点事(二)Netty中的buffer
[原文]https://github.com/code4craft/netty-learning/blob/master/posts/ch2-buffer.md 上一篇文章我们概要介绍了Netty的原 ...
- SAP PP 生产订单变更记录保存
*&---------------------------------------------------------------------* *& 包括 ZXCO1U01 *&am ...
- 使用RecyclerView写树形结构的TreeRecyclerView
简单介绍 android是不提供树形控件的,假设须要使用树形控件.我们应该怎么做呢? 先看效果 上图是一个明显的树形结构 实现原理 在逻辑上,它们是包括关系.数据结构上是多叉树,这是毋庸置疑的. 可是 ...
- 插头dp的几个模板
/* ural1519 求经过全部可行点的哈密顿回路的个数 括号匹配法,转移有点复杂,可是时间空间比較小 */ #include<cstdio> #include<cstring&g ...
- 05---JSON学习(Java)
一.简介 JSON:JavaScript对象表示法(JavaScript object Notation) JSON是存储和文本交换信息的语法 JSON ...
- Component migration documentation
Component migration documentation The following is a list of migration documents for components we s ...