<<深入浅出MFC>>过时了吗?

我刚要在网上订购这本书,但看到有人说已经过时了,而那本书的确是2001年出版的。是否MFC这门技术真的过时了,如果真的过时了,那又是被什么替代了呢,现在应该学什么比较好,vc.net又是怎么回事??
像“猫咪老公”说的MFC会比较繁琐,那哪种会不那么繁琐呢?还有就是VC++.NET 是什么东东,跟VC++有什么异同?

如果刚学MFC的话那建议不要学了,直接进入WTL的世界吧。MFC尽管不会过时,但会渐渐失宠。
WTL 在开发者之间的悄悄传播已经超过一年了, 传闻它是基于ATL的,并在微软内部使用.这理所当然的引起了ATL开发者社区的主意.这些人从ATL1.1开始,就一直为ATL控件书写UI代码,但是他们发现,他们的所写的代码常常就是纯的Win32 GDI代码.我告诉您, WTL并没有多大不同.

是不是让人失望? 不,因为ATL只是对COM进行了简单的封装,这也是ATL的强大之处. 是的,写ATL您必须通晓COM. 您在ATL上额外花费的功夫跟您学习COM所作的努力比起来,简直微不足道.这跟那些需要把主要精力花费在学习类库本身,忽略COM的库是完全不同的.

WTL与此类似.您需要懂得Win32窗口技术和GDI.只要您懂得,学习WTL就似清风抚面,再简单不过了.如果您不懂 这些,那么您最好使用VB来写UI代码.

WTL有什么?

它给各种类型的应用程序提供了一个基本的框架.注意,虽然您没有MFC那样的文档/视结构,但是您有视(views). 在WTL有大量的代码让您来管理视,而且加入您自己的代码也很容易. WTL有AppWizard,可以让您生成SDI, MDI 和多线程SDI程序多线程SDI跟IE或Windows Explorer很像.它看起来是打开了多个程序实例,实际上这些窗口都是属于一个进程的).

另外,您的程序可以是基于对话框的,也可以是基于视的.视可以是基于CWindowImpl的,也可以是基于控件,甚至是IE里的一个HTML页.您可以选择您的程序是否需要一个rebar, command bar (CE-like), toolbar 和/或status bar.另外,您的程序可以主持ActiveX控件,以及成为一个COM服务器.

这里有几个关于视的选项. WTL提供splitter窗口类(这样在一个视里您可以有两个窗口)和scroll窗口类(这样您的窗口可以比它显示的"视"小). WTL也有个类似MFC的UpDateUI的东西,但是它们不是很一样 - 主要的区别是您需要把需要更新的项用宏映射标注出来,然后您在您的类里加入执行UpdateUI的代码. DDX/DDV在WTL也支持,同样类似MFC,但有不同. 您必须加一个宏映射来实现DoDataExchange,然后加入调用它的代码.

现在WTL也有GDI类了.然而,HDC的封装类就像CWindow一样,只进行了很简单的封装 - 它几乎没有加入任何新的功能.不过,在WTL,你可以得到播放meta文件和OpenGL支持. 最有价值的我猜应该是打印机DC的那些继承类 - WTL有打印机支持,甚至打印预览. 当然也有GDI对象的封装. 诸如画笔,画刷,区域等.

WTL对所有的Win32 (和W2K) 通用对话框进行了封装.同样尽管简单,但是它的确使请求字体或者文件变的非常的简单.
合成了旧的AtlControls.h,新加了一些封装类. 这些封装类封装了W2K控件,以及一些不属于Win32的"控件",像Command Bar, bitmap button, hyperlink 和 wait cursor.

WTL 最终把消息分离带入了ATL! 一些新的MSG映射宏将消息分离,调用您类里的消息处理函数.消息处理函数的参数的值是从消息分离得到的.唯一令人头痛的是,您需要查看头文件以确定函数参数的意义.

最后,WTL还有一些实用类.最重要的是CString. 不错,它是从MFC克隆得到的(copy on write),具有(在我知道的范围内)MFC版本的所有方法.还有查找文件的API的封装类,以及CRect, CSize and CPoint.
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-05-25
现在的技术真的很多,但是多又有什么用呢?我个人看过那本书,是本非常不错的好书。非常全面的讲了WINDOWS下编程的基本机制,总之有句话,知识是永远不会过时的,相对论都那么多年了,你能说他过时了吗 ?几十年前的数学书上的概念你能说他过时了吗?
如果你要进入VC这个门槛,我建议你去看那本书,强烈推荐。
世面上现在的新技术很多,但是都离不开根本的,VS,。NET,C#,等等,不要浮躁,安安心心的先进入个博大的世界吧。
祝你成功呵呵!本回答被提问者采纳
第2个回答  2014-02-13
我毫不客气地说,MFC是一个很差的封装和开发框架。问题不应该是它是不是已经过时,而是当初设计出来就已经是一种不良设计。虽然MFC用C++开发,且对Windows API进行薄封装,运行速度是比较快,但是从开发效率角度讲是十分落后的,并且在开发中会遇到各种各样的问题需要解决,浪费大量的开发者用于具体逻辑实现上的时间。WTL/ATL不是很懂,但是它比MFC更多地需要开发者对C++模板等特性的掌握。而对于运行时速度要求不是特别高的一般现代Windows下界面编程场景(即便Windows 8回归C++也不是简单地回归这些MFC/ATL/WTL这样的老技术,而是扩展后的C++),的确.NET相关技术绝对是主流,其中尤其应当关注WPF。

我现在工作中还需要继续使用MFC,这在现在已经很少见了。但是我就用MFC中很少的特性来快速正确有效地完成工作了。因为我们做的软件是工程软件,所以很多后现代的面向广大一般用户的花里胡哨的东西不需要,这省了不少事。但是当写MFC/C++以一种比较有限的模式去写的时候,虽然有时候比较烦累,但是是比较稳妥少麻烦的事情。因为上面已经说了,MFC的进一步扩展和高级特性已经差不多穷途末路。在这个条件下,MFC调用C++类库的方便性优点还是能体现出来的。

但总的来说,开发Windows桌面程序,以及Windows 8/RT的应用是潮流,在这个潮流下,C#/WPF/XAML还是主流(虽然C++/CX现在是WinRT上的一等公民,但是大部分事情C#还是都能做的)。用C#开发图形界面应用的高效是一般C++永远不能比拟的,同时对C++类库的调用也支持非常好。
第3个回答  2008-05-25
你如果是刚开始学习vc,那么这本书就不过时!
其实一本书过不过时只是你对他的需要而言的,学vc基础,就要从刚开始vc6.0开始,这是一个很经典的版本,vc.net是vc的以后版本,是微软基于framework1.1以后的东西,在visual studio 2003以后才有这个说法,我还是认为vc6.0比较舒服一些。
第4个回答  2008-05-25
不过时,但用一段时间以后会发现mfc太累赘,有mfc的东西在bcb下面没法用,还是用标准windows好

深入浅出MFC过时了没有?
MFC目前还是不会过时的!VC毕竟库很全面,我学习VC主要看好他效率!我用VB,DELPHI,VC编写同样的程序.VB很慢,Delphi还不错,但是程序文件太大,VC效率高而且小,所以最终决定放弃前两个现在主攻VC!至于问题说的<<深入浅出MFC>>这本书,我现在都在看!虽然说的是VC5,不过他的思想基本没有变.所以推荐还是...

<<深入浅出MFC>>过时了吗?
如果刚学MFC的话那建议不要学了,直接进入WTL的世界吧。MFC尽管不会过时,但会渐渐失宠。WTL 在开发者之间的悄悄传播已经超过一年了, 传闻它是基于ATL的,并在微软内部使用.这理所当然的引起了ATL开发者社区的主意.这些人从ATL1.1开始,就一直为ATL控件书写UI代码,但是他们发现,他们的所写的代码常常就...

现在用《深入浅出MFC》过时了吗
思想不过时,可以深入了解一下MFC的框架是如何设计的,后续对你架构设计有帮助,至于MFC自身这个东西,看你要实现什么了,如果是界面的话,现在用.net可能效率更高。

mfc还需要学习吗?如果过时了,该学什么?java? c#?如果要学,又该如何学...
mfc并不是一种语言,它只是一个C++库,它在实现上还是C++,只是它是微软的一个界面库。所以学习MFC,首先要学好C++,还要搞清微软的操作系统原理等。类似mfc的库还有Qt库,他们都不是语言。但是mfc方面的书籍还真是比较少,经典的只有侯俊杰的《深入浅出MFC》,不过比较难,此外还可以看孙鑫的视频,百...

学程序界面设计的书籍
要学界面设计的话,主要是要看用什么语言了,如果是C++的话就可以用VC6.0,用MFC进行界面设计,不过现在已经过时了,因为微软已经不再维护了,主要书籍用候俊杰的《深入浅出MFC》。学过Java也可以用Java自带的图形界面设计工具,比如说Swing。简单跨平台,不过有点难看,而且市场上基本不用这个做界面...

MFC学习的问题
而最重要的一个原因,是MFC涉及于微软“藐视”互联网时代,导致MFC对网络的支持非常弱,之后20年,虽然MFC不断改版,但在网络这一块没有太大改变,微软转头弄出了一个C#,MFC的网络支持依然很差,最后不得不和ATL糅合到了一块。所以说,MFC是经典,但过时,总体没什么不对。但必须要说,依然有用、...

MFC 学习资料推荐
这样的资料好像还没有,又想不花时间又想易学,实用,这个基本上很难。想学MFC,推荐候杰的《深入浅出MFC》,个人觉得虽然比较老了,但是对MFC的基本运行机制有深入的讲解,并且浅显易懂。

李进久 深入浅出mfc我看了写得不错啊,怎么没什么影响呢
《MFC深入浅出》这本书是我所看过的写的最好的剖析MFC源码的书,这本书其实出版的比台湾侯俊杰的《深入浅出MFC》要早,可现在网上把侯俊杰的那本书都炒作的上天了(其实侯俊杰的书写的并不怎么样,看完本书后你会同意我的说法)。两者相比,李进久老师的这本《MFC深入浅出》除了文字更加的通俗易懂...

我现在是一名刚上研二的研究生,现在在学校C++编程,我只是把c++的基本知 ...
3,再次,看你是选择windows还是linux平台,如果选择windows平台,那么肯定离开不了mfc了,对于mfc,我是深入了解过的,深入浅出mfc,详述mfc的rtti,message map等等特性,它对宏的运用真是让我叹为观止,不过即使我很仔细的理解完了,我还是没能很好的运用宏,对于界面那就更容易了,api记不住没有关系...

MFC界面编程有什么好的参考推荐
1,如果Windows编程还不熟悉的话,建议首先看一下:Charles Petzold的《Windows程序设计》,网上有侯捷翻译的台湾版电子版(chm格式)2,楼上推荐的《VC++技术内幕》是绝对经典的MFC入门书籍 3,其次如果要探究原理的话《MFC深入浅出》比较经典的。4,MSDN 其实,MFC从7.1开始就没怎么更新了,如果要写...

相似回答