我的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 ...
随机推荐
- HDU-4607 Park Visit bfs | DP | dfs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607 首先考虑找一条最长链长度k,如果m<=k+1,那么答案就是m.如果m>k+1,那么最 ...
- 11个高级MySQL数据库面试问题和答案
因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...
- 现代程序设计——homework-01
1.我的GitHub用户 首先,接触到现代程序设计这门课之后我才正式开始使用GitHub和它的客户端,以前都是去网站看代码.扒样例.我注册的账户名为:hennande.目前该账户中有我的第一份关于ho ...
- Delphi给窗体镶边-为控件加边框,描边,改变边框颜色
PS:因为我现在用的电脑是WIN7 64位系统,所以没有实现功能,不知道XP是否可行. //1.定义方法 procedure WMNCPaint(var Msg : TWMNCPaint); mess ...
- python 使用模块
Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env python # -*- co ...
- 在CentOS 6.2上安装 MemcacheQ 最新版
1. 安装 yum install gcc cc make libevent libevent-devel 2. 安装Berkeley DB 下载:http://www.oracl ...
- jQuery插件- Autocomplete应用详解
项目中有时会用到自动补全查询,就像Google搜索框.淘宝商品搜索功能,输入汉字或字母,则以该汉字或字母开头的相关条目会显示出来供用户选择, autocomplete插件就是完成这样的功能. auto ...
- R语言-Knitr包的详细使用说明
R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...
- Java的面向对象思想
多态性: 一种方法有多种实现,采用哪一种实现由Java虚拟机在运行时动态决定,这种能力成为动态绑定(dynamic binding),也称为多态性(polymorphism)(源于一个希腊单词,意为“ ...
- PHP流程控制(二)
布尔型循环就是为真的时候执行,为假的时候停止 注意:1.循环能够节约大量的代码,提高重用性质2.循环,一定要有退出条件.3.While循环中,在while循环之前必须对变量进行初始化; 单层循环:语法 ...