如何学好VC和MFC.docx

上传人:b****7 文档编号:11194109 上传时间:2023-02-25 格式:DOCX 页数:28 大小:56.05KB
下载 相关 举报
如何学好VC和MFC.docx_第1页
第1页 / 共28页
如何学好VC和MFC.docx_第2页
第2页 / 共28页
如何学好VC和MFC.docx_第3页
第3页 / 共28页
如何学好VC和MFC.docx_第4页
第4页 / 共28页
如何学好VC和MFC.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

如何学好VC和MFC.docx

《如何学好VC和MFC.docx》由会员分享,可在线阅读,更多相关《如何学好VC和MFC.docx(28页珍藏版)》请在冰豆网上搜索。

如何学好VC和MFC.docx

如何学好VC和MFC

如何学好VC和MFC(各前辈学习方法及感受整理)

(一)

序:

近来,在论坛上面几乎每天都可以看到很多的人提出如何学习MFC,学习MFC的确不是一件很容易的事情,加上成千上万的API函数和微软的一些资料的保留,学习MFC就变得更难了。

不过我认为难在入门,入门后就慢慢觉得得心应手了。

下面是一些先辈们学习过程中总结出来的方法及学习感受,今天把它们整理出来,供大家参考。

正文:

我记得我在网上是这么说的:

先学win32的SDK,也就是API,再学MFC,这么一来呢,就先有个基础,MFC是API的封装,如果API用的熟了,MFC上手就轻松的多了。

我觉得呢,现在不少WINDOWS编程入门的好书很多,多买一些,多看看,多想想。

不要心浮气躁。

我的经验就是一边看书,一边写程序,看看是不是书上说的那样。

看书看明白了不行,自己做对了这个过程体会就不一样了,做的多了,就慢慢会有“悟”的感觉。

就入了门了。

一般从刚开始学WINDOWS编程(前提是C/C++至少要懂得C的一般常用概念)到基本熟悉,一年时间也差不多,如果在公司里,可能会快一些,主要取决于自己,如果每天都很多时间看书就要快许多。

这是昨天一个网友提出和你同样的问题。

我这样说的。

你说推荐的书籍呢,那倒真是有不少好书非常值得看看,学习c++的有《c++编程思想》,学习api就是win32程序员参考手册,一般叫sdk。

学mfc呢,那就更多了,书店里的不少书都可以拿来看看,看的多了,自己也就知道什么样的书最适合自己,不同时期欣赏的口味都不同的。

比如说刚开始,就特别想找vc如何使用的书,刚接触win32编程就想如果能有手把手那样的教就好了。

这些书都有的。

我的习惯就是,多看书,然后才有鉴别,知道什么样的书算是经典,什么样的书尽管没多大用,但是对特定的人,特定的时期,特别有用。

买更多的书,看更多的书其中《Visualc++技术内幕》和《深入浅出MFC》不可不买中国人学不好VC的原因很简单:

英语非常差,不会看英文版的MSDN/CD,大学里的教育全是垃圾,设备又差,许多学VC的家伙不懂MASM,连WINDOWSMessagecyclesystem都不了解,学什么学?

?

?

不过不要紧!

据我所知,全球使用C++的人不过30万,且多数是用BCB(用控件来写容易啊!

!

!

?

?

?

)要知道,根据MS的资料,它出的书最Highclass的一类只不过卖出20万左右,(ps:

Iforgotbookname!

!

!

)要想学好VC,先学好英文,再去C之类的网站D/Lsourcecode!

不要买国人自己编写的书(翻译的除外)最好是MS出的书,既然是用MS的工具,这是当然的,还要定期买MSDN/CD,MS的人开发人员每人一套!

!

!

!

要谈的太多了,一句话:

学好VC=英文好+基本功好+勤奋+聪明.少一不成的啊!

!

!

!

我觉得初学者先不要看MFC,API,Windows编程之类的东西,最重要的是先弄懂什么是面向对象,什么是类,要是弄不懂类拿学起来就真的累了!

1.先找一些傻瓜书,一步一步教你,CLASSWIZED,单击,双击,右键...,...加入函数代码....编译,运行...(真正的傻瓜!

)2,分析代码,头文件,消息宏等,找来书慢慢研究吧.哦,这函数有这些参量.....哇,老兄,WINMAIN()是做什么的?

?

?

?

?

?

?

指针,类,继承,重栽,折构......3.书书....<>,95元,<<深入C++类库编程...>>,SAME图书,什么,105元...清华,希望,机械,电子,什么出版社......

说起来我学VC也有些年头了,想当年玩了3年游戏却在大四为了毕业设计开始接触Windows编程。

没办法,天生的手短心长,导师原来要我用DOS环境的。

偏偏一开始有抱的是MFC,有一点C++基础的我看得是两眼发黑。

当然,设计是泡汤了,还好导师放我一马。

工作以后才切身感受到,学Windows编程是要从API,从SDK玩起的。

这还是我当年去一家台湾游戏公司面试的惨痛教训。

我那个时候因为默不出一个完整的WinMain()和WindowProc(...)WindowsSDK程序架构惨遭淘汰(其实现在大多的Windows游戏还是用SDK的)。

在我看来,写Windows程序的人对API不了解是不可想象的。

我现在还没有用VC编出一个我自己认为象样的东西来,但我还是坚持用我的业余时间去和她增进感情,也许,这是一个技术人的老毛病吧。

刨根问底,对Windows也不放过。

还有,就我觉得,语言这个东西其实就象老妈厨房里的各种菜刀,各有千秋的。

人天生的对东西会产生偏好,但拿水果刀切菜和拿大菜刀削水果是一样吃力的。

我以前也认为天下有了VC就已足够,可现在两样。

有人说过,存在的就是合理的......各位友人,我觉得学VC,熟悉C++的面向对象与WINDOWS编程技术是必要的.另外多看看别人的源代码,弄清程式所来龙去脉也,弄清程式的运行机制格外重要.至于你不太熟悉API,我看这并不重要,因为这么多API,试问谁能记这么多,不知道的查MSDN.初学者切莫心浮气燥,循序渐进,相信他日你也是VC"高手".不过,想精通VC还没有这么简单,我以什么VC,VB,BCB...只不过编码工具,大家不必拘于此.VC确实是一把好剑,像独孤九剑也是一把剑,但没有一点内功,这把好剑不是那么好用的.我觉得学任何语言都无所谓,关键是要掌握程序设计的核心——算法和数据结构。

各种语言和开发工具就好比各门各派的武功招式,而算法和数据结构则好比内功心法和武学原理,内功高强了,任何招式到了手上都能化腐朽为神奇,掌握了武学原理,则能无招胜有招。

所以,建议大家多花点时间学习基本功,一味地追求各种开发工具的开发技巧是没有意义的。

因为各种开发工具会不断地更新,比如今天你在学C++,明天微软搞了个C#,你又得跟着学C#。

但是如果基本功扎实,掌握了程序设计的核心思想,不论什么语言都可以很快上手,无论何种开发工具学起来都事倍功半。

我并不是否认学习各种语言和开发工具的必要性,只是要提醒各位初学者,学会C++语言或学会用VC编程并不等于学会了编程!

编程的关键还在于数学模型的建立,数据结构的选择和算法的设计!

内功=算法+数据结构+编译原理+*作系统原理+软件工程+英文你到/;;看看,可以找到《深入浅出MFC》2e电子版下载!

有一本书很好《WIN32程序员参考大全》即可了解WINCSDK,又可以了解WINDOWS,一举两得。

就是有好几本。

可以到VC知识库网站的电子图书栏目下载。

我认为需要三本书,1<>美JeffreyRichter.清华大学出版99元2<>美CharlesPetzold北京大学出版160元3<>美JeffProsise是英文版的北京大学出版198元还有更好的选择吗?

我不相信!

我学vc也半年了,c和c++的功底不错,对vc感觉还可以。

我认为学vc也有些技巧,可以事半功倍。

vc的书要跳着看,先把api,windows运行的概念看懂,再看mfc其实只要你c++学的好,mfc几乎没多少可看的,就是一些功能的封装。

vc其试只是工具,精华都在windows程序的流程上。

掌握好概念后,就是狂背各种api函数和mfc封装的成员函数。

最后就是研究mfc代码和其它原代码。

我学vc已有些时间了。

但总有的地方不清楚。

到网上去问“高手”,老被骂的狗血碰头,到头来,还是一头雾水。

后来买到一本好书,TheMFCAnswerBook,SolutionsforEffectiveVisualC++ApplicationsAuthor:

EugeneKainPublishedbyAddision-Wesley个人认为学习VC的前提是C++,特别是虚函数、派生、和指针,余皆不足虑也。

vc的瓶颈就在于各种api和mfc封装的函数调用。

例如你知到ddx在update()运行时默认凋用dodatachange(),等等一些函数刁用。

vc顺脆是小菜。

vc本身就是傻瓜工具,微软开发vc原意就是要缩短程序员培循时间。

可国内有人据燃要用几年时间来学,真是太可怕了,太可悲了。

学会了只能在windows平台上开发,那末你那有时间去学其他平台的程序开发。

vc只是工具,关件在学windows*作系同,windows通了,vc最多半年。

劝大家一句,不要在看身末“深入浅出”之内的书了,去找一本专门讲vc库函数的书看,这才是精通之道。

住:

以上经验只试用于,具有很强c/c++遍程能力者。

我觉得学vc要先从c,c++学起,然后是api和mfc(英语很重要,不过不用怕,用金山词霸边查边学,等你vc入门后,你的英语阅读能力也会上一个台阶);另外我要的经验是学的时候不要钻牛角尖,学语言关键是学语法和概念(继承,重载,多态性...),其次才是某某函数怎么用之类的东西.(学windows编程一定要掌握消息机制)要想学懂VC必须:

1、找几本好书:

《window程序设计》只看前几章,看懂windows的消息机制,Api的结构;《mfc深入浅出》全面学习,深刻理解mfc的结构2、编一个较大型的项目,不停的使用VC,边用边理解看过的东西;3、经常看优秀的源程序。

我本来无资格发言的,因为我也是一个多月前才决定学VC的。

我总结一下以上n位的发言(随便练练指法):

1.在学vc之前最好能有点其他语言的基础.(没有也没多大关系)2.学c++之前不必学c.(当然会c会快点)3.c++的一些概念很重要(如:

对象,类,构造、析构函数,继承,模板等),最好弄透(怎么弄透,谁告诉我?

)好书推荐:

<>(<>screen.width-300)this.width=screen.width-300'>39.00元,适合对c++较熟悉的人.(有没有适合白痴级的好书,让我弄透以上重要概念,麻烦介绍一下)4.API---->MFC.好书推荐:

(1)<<深入浅出MFC>>(<>screen.width-300)this.width=screen.width-300'>80.00元,701页.电子书下载:

(不过是繁体版的,有些术语和大陆不同).购买:

.,人民时空.(第一家最便宜)

(2)<>(<>screen.width-300)this.width=screen.width-300'>96.00元,900多页.最好买第四版的(清华出版,潘爱民翻译),电子书下载:

至今也没找到(只有第五版,English的),一些网站上说的好听其实都是些原代码(害我下了100多兆的原代码,这些人建网站干吗,吃饱了撑地,这里copy一些,那里copy一些不看一下就上传,有什么意思).购买同上.(3)<>(<>screen.width-300)this.width=screen.width-300'>(第五版,以前的版本叫<>我没找到电子书(好像有)和购买网站)160.00元,1346页电子书下载:

至今也没找到(只有第五版,English的),.购买同上.以上的书有人看懂了,说好有人没看懂,烦恼fang说:

什么样的书尽管没多大用,但是对特定的人,特定的时期,特别有用我说:

尽信书不如无书5.边学边练,多看MSDN,英语不好的人,会费尽一些(我算是完了,真的很傻,以前马老师对我不错,想起来真对不起他(对不起的是你自己))学习VC,MSDN既重要也不重要,关键是先后问题。

建议你先看侯俊杰的《深入浅出MFC》,买不到的话可以到我的主页的电子书下载理去下载。

要是你是成都的话就比较幸运些,成都有这本书卖哟!

相信看过这本书后,你就知道该怎么学VC了。

MSDN在电脑城去买,4元一张。

一共3张(新版,老版2张)。

好了,先把上面做了!

快行动哟!

我是一个大一的学生,读计算机的。

我对编程很感兴趣,我以为可以在学校学到好东西,于是就慢慢来学,现在差不多有一年了,谁知连个屁也没学到。

直到我来到这,被大家的热情感动了。

我决定自学。

后来我听说有些大学生能通过高程。

于是我就买了[离散数学],[C程序设计],[计算机英语]学起来.听说还要学[数据结构],[*作系统],[编译原理].请问要学完这些要多少时间?

先声明我是一个菜鸟.还有应该先学哪些?

我正在为此奋斗,希望大家指点小弟一下.学VC我认为有益下要点;1.要对win95*作系统的特点了解。

如:

多任务,消息映射等。

2.面向对象的设计特点,即类,需要学好C++。

3.对MFC也要有一定的认识。

4.真对一实际问题深入编程,不投机取巧,老实下功。

过去我在VC上下过很大的功夫,光MFC,WIN32API手册就看过很多遍。

我认为学好VC的关键在于对Windows系统的了解,如果连某个动作对应的消息都不知道,又如何处理它了。

 

如何学好VC和MFC(各前辈学习方法及感受整理)

(二)

VC进阶:

1.C语言;2.C++,OOP;3.Windows运作机理,SDK编程;4.MFC类库,应用程序框架编程;5.ActiveX,ATL,COM……每步骤通常需要6个月,最快也得3个月,诸位同意否?

学VC或windows编程分三STEP:

1.只SDK提供的Function作开发,不要Object,你会知HowtohandleMessage.2.MFC编程,用CEdit等开发.3.再用VC如果你有一个别人的好程序,不妨自己跟着他的思路,从小到大自己完成一遍。

好书:

<>学习VC++有相当的内容要学,而最后的深度则看个人的悟性与勤奋了。

1)掌握最新标准的C++。

如果曾经在大学里自以为学过C/C++,还对dynamic_cast/static_cast/template/try/catch/throw/stl/...感到陌生,那你该Refresh一下新的ANSIC++标准了。

----此与VC++无甚关联,g++/bcb均有所支持。

(2个月)2)学习SDK编程;:

-O(6个月)痛苦是暂时的,必要的,坚持就是胜利!

建议用Lccwin32/Masm32/Tasm编写小而精的工具软件;"WindowsProgrammingGuide.""AdvancedWindowsprogramming"3)研究MFC源代码。

(6个月)不要被一大堆的宏所蒙蔽,justtrackanddigintoit!

!

在知道MFC如何扩展,包装SDK之后,自可功力渐进,不被其MFC系统框架所困绕。

"MFCInternals"4)研究OLE/COM技术。

COM/ActiveX技术是MS的核心技术,只有彻底洞察其理论精髓才可以体会现在的*作系统的技术趋势,以不变应万变。

"InsideOle2"***几点建议***:

1)Delphi/BCB/VB可以很快构筑界面,但对于想真正学习、理解系统不是一个好的平台,但如果有时间读一读VCL的源码,看看Borland是如何封装系统的,也可借鉴不少。

2)学习ASM对理解C++有很大益处。

Soft-ICE也是和VC++结合在一起的好工具;3)语言本身是皮毛,算法是筋骨;无论高级语言如何发展,在理解*作系统的基础上不断自我创新的能力是源源不断的;如果精髓一旦了然于胸,选择何种开发工具都可以驾御,一见如故了。

VC入门的一条路首先声明,我可不是什么高手,也就是刚脱贫。

因为运气很好,买到了几本好书,在学习过程中几乎没走什么弯路,没费什么劲就入门了,现在一般的小程序能搞定了。

看到那些因为不知从何下手而苦苦挣扎的朋友,希望我的文章能给他们一些帮助。

学编程急不得,上来就学VC肯定碰一头灰,说VC难就难在这点上了。

如果硬上,意志坚强的话也许能挺过来,但也是会缺乏后劲,不得不回过头来补习基础知识。

意志不坚强的话,很有可能就此放弃了,并留下一个VC难得不得了的印象。

其实,只要踏踏实实一步一步来,VC也就是很简单点事。

在这里我说一下,如果你还只是一个初中生,那么你就应当仔细考虑一下了。

首先,限于你的知识和思维能力,学学C语言还应该没问题,但要学VC是要下相当大的功夫的。

而且,你现在学到的东西将来一定会过时,所以不如把精力放在算法的研究上,毕竟这些东西永远都不会过时。

我觉着如果走对路子,入门VC,一个暑假应该够用了。

虽说学VC并不是传说的那么难,可不下些苦功夫是学不成的。

在学VC前,你必须确定,你是因为热爱编程才学VC的,而不是出于炫耀或其他。

否则,恐怕你坚持不到胜利的那一天。

对于首次接触编程的同学,我建议最好先学一下QuickBASIC(DOS里就有带,就是那个QBASIC.EXE),不用多学,知道什么是整型什么是浮点,以及DO...LOOPFOR...NEXT等最基本的知识,能算个阶乘,求个积分就行了,关键要明白计算机是怎么执行命令的,对编程有个感性认识。

如果你对自己有自信,也可以直接学C++,应该也不会多费太多事。

不过我觉着因为有很多资料是FORVB的,并且网页编程常用VBScript,以后你也很有可能要用到VB,所以了解一些BASIC对以后也是有帮助的。

而且如果只是要算个小题用QB比VC、VB之类方便多了。

(找个人教一两天应该就能搞定了吧)之后我建议找本初高中信息学奥赛的书(有些奇怪吧)。

这些书里讲解了基本的算法,写的却比较通俗,没什么高深的数学知识,容易理解。

这些东西在数据结构课程中有系统严密的讲解,所以也可等以后再学。

但我觉着现阶段写一些小程序,实现些常用算法对自己的思维是很好的锻炼,对以后的学习大有好处。

我想,能排排序,求个八皇后,算个汉诺塔,再知道深、广度优先搜索就可以了。

如果你已经有一些编程的基础知识了,自然就可以跳过以上两步。

等你对编程有一定的认识后,就应该开始进军C++了.注意,是C++而不是VC,这两者根本不是一码事!

别买VC入门,你肯定看不懂!

C++是一门语言,而VC教程则是讲解如何使用MFC类库,学习VC应建立在充分了解C++的基础上。

我觉着比起许多花花绿绿的大全、宝典,不如买本大学的C++教程(注意:

别买等级考试的教程,那是应试用的),那些教程大都经过反复锤炼,比较系统,很有含金量,有不会太贵。

这里我暴力推荐由清华大学出版社出版的一本《C++程序设计教程》,封面是红色的,封底是黄色的,看起来很朴素,主编是钱能。

这本书简直是好的没法说,还便宜(39.5元)。

这本书不但告诉你语法,还告诉你为什么要这样规定语法,看完之后,你会觉着那许许多多的规定是理所当然的,根本不用费心记,不但不枯燥,反而会使有一种美感。

书中还有许多实际编程时应注意的问题,很有价值。

这本书还配有《实验指导》,和《习题集》,不过对于有一定编程经验的人应该是用处不大,所以我没买。

除了这本书,我建议再买本关于传统C语言的书,要着重以下几个方面:

编译预处理、typedef的使用,位运算,标准库函数的使用(最好有一个比较详细的列表,用的时候好查)。

C++的标准类模板是个不错的东东,不过对于学习MFC却没有帮助,原因是MFC太落后了(^_^),可以先放一放,要不要学等搞定MFC时再作决定。

虽然我没怎么学过,不过觉着它挺不错,而且代表了一种发展方向。

虽然学着费劲(那东西几乎没一点C++的样子,简直是在学新语言),但掌握它可使编程轻松不少。

学完了C++,该学VC了吧?

别急,先找本WIN32编程的书,这次没什么讲究,看着差不多的,便宜一些的就行了,如果有对于VC集成环境的介绍就最好了。

WIN32编程是指用WINDOWSAPI编程,MFC是将众多的API函数进行了封装的类库,用起来方便了不少,但如果没有一些API编程基础,对相关概念不了解,学起MFC来可能会很费解。

相信我,将来你不会觉着学API编程是浪费时间的。

API函数有两千多,要都学会累死。

其实你只要知道如何创建窗口、对话框、控件、消息循环,了解了句柄的含义就差不多了,最好再了解一点GDI编程。

这个阶段的关键是要理解WIN32程序是如何运作的,把握各种窗口间的关系。

因为你以后应该很少直接用WIN32SDK编写程序,所以关键是理解整体结构,记住几个函数并没有什么意义。

函数用的时候可以现查。

手头应有一份比较全面的资料。

中文的API函数大全好像只有ForVB的,不过看起来应该是没有任何障碍。

英文的资料MSDN中就有,相当全面,也比中文的详细一些。

我建议用中文资料快速查找,有问题再看英文。

(我忘了我的html版中文API大全是从哪下载的了,不过书店有售,白皮的,很厚一本,很贵就是了。

谁想要可以与我联系iamsor@)

对于想学游戏编程的朋友注意:

从现在起,你不必去学什么MFC了,相信我,那东西除了让你头疼一点用处都没有。

游戏都使用Win32SDK编出来的。

现在,你要学的是DirectX。

我推荐老王翻译的DirectDraw文档(),前面有一些老王自己写的基础知识,很适合入门,在此特别感谢老王的辛勤劳动。

我还买了一本《DirectX7速成教程》,机械工业出版社出版,封面封底都是红色。

除了翻译惨了点还算不错,介绍的挺全面,还有一些游戏编程基础知识。

如果你想图省事,可以考虑用云风编写的风魂游戏库,很方便的(对云风的辛勤劳动表示感谢).不过我仍然建议至少了解一下DirectX.这里说一下,很多朋友抱怨找不到有关DirectX的书籍,我告诉你,别去编程书籍里找,去多媒体制作书籍那找,还要把眼睛瞪得大大的、圆圆的。

Director..Director..DirectX!

!

!

知道了吧,书店工作的人眼神都不大好,我也是有一天没事瞎转才发现的,吓了我一大跳。

发现这个秘密后我发现其实有不少关于DirectX的书,只是一般人找不到罢了。

学会了DirectX,就可以开始奋斗了,剩下的问题就只有积累经验了。

对于志向是应用软件的朋友,打好了基础,现在进军VC的障碍都已扫清了。

不过还是应做好充分的思想准备,事情不会那么顺利的。

刚开始,你就要面对一个瓶颈,大量的紧密关联的知识,使你必须一下理解一个整体,而很难一点点来。

可以说,学VC最难的就是刚开始。

情况有些类似于你第一次创建窗口时面对的那长长的程序,只不过更糟糕就是了。

很多人就是在此被一大团知识噎着,放弃了学习。

事实上,这几乎是Windows编程的一大特点,在WIN32编程时你就应当有所体会,而DirectX和COM都有类似问题。

记住,一定要坚信:

突破了这个瓶颈之后便是一片海阔天空,而有着扎实基础的你是一定能闯过去的。

我的建议是,不要等彻底弄明白一句才看下一句,而是知道好像怎么回事就向下看,实在看不懂也硬着头皮往下看,等能比猫画虎的作出个菜单、对话框时便回过头再看一遍,几遍之后应该就可以大概明白MFC程序的运作了。

注意:

这里有个关键,一定要用心体会面向对象编程的精神,努力将眼前的程序与你之前所学的知识联系起来。

通过比较成员函数和对应的API函数间的区别,尝试去理解MFC是怎样封装相关的API的。

例如,相当多的类将句柄封装了起来,在传递参数时加以省略,这就是一个很重要的特性。

MFC中有许多的宏,看起来很奇怪,但你不必理会其实现方法,只要知道如何使用便可,这点也很重要。

还有,千万不要过于依赖ClassWizard,对于其生成的代码要自己进行分析,偷懒就不能真正理解MFC。

这里我介绍一种学法,不过学法这种东西因人而异,所以还要根据个人的情况决定。

开始时,教程让怎么办就怎么办,比猫画虎的作出个菜单、对话框,然后试着添加控件。

等能不看教程便做到这些时,开始逐字逐句的试着理解MFC程序的组织。

若看不懂就跳过看下面的。

就这样一遍一遍来。

如果觉着头大就先歇上两天,等清醒了再接着来.最好在这

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1