1、如果你真心想学好Windows,不要心猿意马的话。我觉得只需要一本书,你能把它吃完,MFC神马的一笑而过吧!《Windows程序设计》英文名《Programming Windows》目前第五版珍藏版,清华大学出版社出版,微软5人以上的翻译团队翻译 。。。作者:Charles Petzold。1K+的页数,MFC只是将windows api封装了一下,所以搞定这本书,MFC的一些实现机制你就懂了。
2、扎实学好C/C++,一定搞清WINDOWS的消息机制,MFC尽管很庞大,但抓住其主要框架和特点还是易于学习,所谓抓住框架,就是能较好开发诸如系统底层、通讯、ADO、多线程、多进程、图形图像处理、DLL/LIB。
3、首先必须会c和c++,然后要知道windows API,如果对这些了解不好的话,很难开始的,就像空中花园,各种窗口弄熟悉,知道常用的mfc类,如何封装windows API,一个mfc 程序的生与死流程,消息映射机制,可以看《mfc 深入浅出》《visual c++ mfc 编程实例》,前者有点难,但确实很好,对整个mfc 机制讲的很透彻,后者有很多实例,再去网上找个mfc类库手册碰到不会的类就查查,刚开始很难,随着学习对机制流程慢慢熟悉,对类慢慢熟悉就会好起来。
》》》程序员练级葵花宝典
4、mfc开始就是要从熟悉每个控件的使用开始。
5、第一步,先了解windows的控制台程序,也就是直接用C和windows的API编写的程序,对windows的窗口函数,消息循环等有个了解;
第二步,学习C++语法以及面向对象的编程方法,建议看C++ primer 第五版;
然后,在学习MFC,了解整个framework的结构,强烈建议看看孙鑫的C++视频(主要讲mfc的),我就是之前走了不少弯路,看了孙鑫的C++视频觉得非常好,相见恨晚啊,还有侯捷的深入浅出MFC。
6、买本有实例的书回来看, 第一步,首先会建立MFC应用程序吧,然后根据实例慢慢打,如果简单的实例能自己照书本打运行成功了,那就在打2次,直到不需要看书就能把这个实例打出来,此外还需要自己多多的总结,为什么会用这个语句什么的,还有为什么这个语句写在这个地方。实例练多了,MFC玩久了,自然而然就能领悟到MFC的架构了,那时候做什么都是比较顺手的。
7、首先不能把MFC和C++对立起来了,MFC只是C++的一个部分!学好C++或者学好C++中的MFC编程的最万精油的办法就是多看例题,然后多练习,从易到难!MFC一个很好的地方就是它把函数所共用的函数骨架,一些共用的类都给你自动生成了,因此学习MFC编程的另外一个“捷径”就是你不要过多的去想怎么想那些可以随处copy的类,你要做的就是多去想怎么编写出实际要求或要实现具体功能的那些函数代码,这是编程者必须要做的!其他共用的代码就是不断的被人复制粘贴!
8、如果你有了C++的基础了吧,至少类,虚函数,派生等等之类的C++基本概念你要掌握的,然后你就可以开始学习MFC了。我一开始是从候杰的《深入浅出MFC》开始学习的,感觉还不错,特别是前面的6个仿真MFC的程序,还是很不错的,不过他的书看起来比较的累一点,很多东西看着有点云里雾里的。另外还有一本是《MFC windows 程序设计》也是很不错的,我也看过,可以当作工具书。当然《MFC技术内幕》也挺好的!
9、打下好的C++基础对学习MFC有很大的好处,你要明白,学习编程最主要的是:
》》》如何学好C++语言
1)学习计算机系统的运行原理。你只有在较为深刻地了解了计算机系统的运行原理,才可能会理解代码为什么要这样写,理解一些低层的错误。在此推荐一本书,《深入了解计算机系统》,不厚,才800多页,两个月读下来应该不成问题。它能让你在程序员的角度上,对计算机有个深刻的了解,很不错。
2)了解点操作系统的原理对编程也是有好处的。说实话,孙鑫的这个教程对操作系统的底层原理涉及了一点点,但是很不够,你应该了解一下Windows操作系统的底层原理是怎样的,虚拟内存是个什么东西,进程是什么,等等。同样,《深入了解计算机系统》也对操作系统的一般性原理讲了一些,刚刚够,不过建议你读读《深入解析Windows(第四版)》。
3)当然,学习MFC也许不多需要对API有多了解,但是了解API,对了解MFC的原理也是有好处的,这样你学起MFC就不会常常地一头雾水了。能力够的话,再加上本罗云彬的《Windows环境下32位汇编语言程序设计》,对你了解Windows的原理有很大的好处。
总得说来,就是:《深入了解计算机系统》、《VC++深入详解》、《Windows环境下32位汇编语言程序设计》、《Windows核心编程》、《深入解析Windows系统(第四版)》这几本书,应该是你学习编程的一个有效的过程。
10、做项目是学习的最好方法,在项目中实践,同时参考别人的优秀代码。拿书本看没什么效果。
说起来我学VC也有些年头了,想当年玩了3年游戏却在大四为了毕业设计开始接触Windows编程。没办法,天生的手短心长,导师原来要我用DOS环境的。偏偏一开始有抱的是MFC,有一点C++基础的我看得是两眼发黑。当然,设计是泡汤了,还好导师放我一马。
工作以后才切身感受到,学Windows编程是要从API,从SDK玩起的。这还是我当年去一家台湾游戏公司面试的惨痛教训。我那个时候因为默不出一个完整的WinMain()和WindowProc(…) Windows SDK程序架构惨遭淘汰(其实现在大多的Windows游戏还是用SDK的)。
在我看来,写Windows程序的人对API不了解是不可想象的。我现在还没有用VC编出一个我自己认为象样的东西来,但我还是坚持用我的业余时间去和她增进感情,也许,这是一个技术人的老毛病吧。刨根问底,对Windows也不放过。
我觉得学VC,熟悉C++的面向对象与WINDOWS编程技术是必要的.另外多看看别人的源代码,弄清程式所来龙去脉也,弄清程式的运行机制格外重要.至于你不太熟悉API,我看这并不重要,因为这么多API,试问谁能记这么多,不知道的查MSDN.初学者切莫心浮气燥,循序渐进,相信他日你也是VC”高手”.
不过,想精通VC还没有这么简单,我以什么VC,VB,BCB…
只不过编码工具,大家不必拘于此.VC确实是一把好剑,像独
孤九剑也是一把剑,但没有一点内功,这把好剑不是那么好用的.
我觉得学任何语言都无所谓,关键是要掌握程序设计的核心——算法和数据结构。各种语言和开发工具就好比各门各派的武功招式,而算法和数据结构则好比内功心法和武学原理,内功高强了,任何招式到了手上都能化腐朽为神奇,掌握了武学原理,则能无招胜有招。所以,建议大家多花点时间学习基本功,一味地追求各种开发工具的开发技巧是没有意义的。因为各种开发工具会不断地更新,比如今天你在学C++,明天微软搞了个C#,你又得跟着学C#。但是如果基本功扎实,掌握了程序设计的核心思想,不论什么语言都可以很快上手,无论何种开发工具学起来都事倍功半。我并不是否认学习各种语言和开发工具的必要性,只是要提醒各位初学者,学会C++语言或学会用VC编程并不等于学会了编程!编程的关键还在于数学模型的建立,数据结构的选择和算法的设计!
内功=算法+数据结构+编译原理+*作系统原理+软件工程+英文
有一本书很好《WIN32程序员参考大全》即可了解WIN C SDK,又可以了解WINDOWS,一举两得。就是有好几本。可以到VC知识库网站的电子图书栏目下载。
我学vc也半年了,c和c++的功底不错,对vc感觉还可 以。我认为学vc也有些技巧,可以事半功倍。 vc的书要跳着看,先把api,windows运行的概念看懂, 再看mfc其实只要你c++学的好,mfc几乎没多少可看的, 就是一些功能的封装。vc其试只是工具,精华都在windows
程序的流程上。 掌握好概念后,就是狂背各种api函数和mfc封装的 成员函数。 最后就是研究mfc代码和其它原代码。
个人认为学习VC的前提是C++,特别是虚函数、派生、和指针,余皆不足虑也。 vc 的瓶颈就在于各种api和mfc封装的函数调用。例如你知到 ddx在update()运行时默认凋用dodatachange(),等等一些函数刁用。vc顺脆是小菜。 vc本身就是傻瓜工具,微软开发vc原意就是要缩短 程序员培循时间。可国内有人据燃要用几年时间来学,真是太可怕了,太可悲了。学会了只能在windows平台上开发,那末你那有时间去学其他平台的程序开发。
vc只是工具,关件在学windows*作系同,windows 通了,vc最多半年。 劝大家一句,不要在看身末“深入浅出”之内的 书了,去找一本专门讲vc库函数的书看,这才是精通之道。
注:以上经验只试用于,具有很强c/c++遍程能力者。
要想学懂VC必须:
1、找几本好书:《window程序设计》只看前几章,看懂 windows的消息机制,Api的结构;
《mfc深入浅出》全面学习,深刻理解mfc的结构
2、编一个较大型的项目,不停的使用VC,边用边理解看过的东西;
3、经常看优秀的源程序。
学VC我认为有益下要点; 1.要对win95*作系统的特点了解。如:多任务,消息映射等。 2.面向对象的设计特点,即类,需要学好C++。 3.对MFC也要有一定的认识。 4.真对一实际问题深入编程,不投机取巧,老实下功。
过去我在VC上下过很大的功夫,光MFC,WIN32API手册就看过很多遍。我认为学好VC的关键在于对Windows 系统的了解,如果连某个动作对应的消息都不知道,又如何处理它了。
VC 进阶:1. C 语言;2. C++ ,OOP;3. Windows 运作机理,SDK编程;4. MFC类库,应用程序框架编程;5. ActiveX,ATL,COM……每步骤通常需要6个月,最快也得3个月,诸位同意否?