过时与否?简单回答就是:没有过时。
是否需要学习MFC?简单答之:depends on。为何没有过时?很简单,微软一直在更新MFC,如果知道MFC的真正含义,你是不会说出过时两个字的,Microsoft Foundation Class,这是微软C++界面库的基础。有人会提WTL或者ATL,但是被用的不多。至于QT什么的,那不是微软的东西,再好微软也不会用的。
学习MFC最好的书籍?是这本:http://www.china-pub.com/45715 《VC++技术内幕》,另外深入一点可以看《深入浅出MFC》(侯捷)。
MFC没有更新吗?当然不是,如果你安装了VS2008或者2010就会不经意发现,那些wizard提示方式下,你可以建立出更多更酷的界面模式,那些都是QT、WTL么?当然不是,那都是MFC的功劳!!!
MFC一直在与时俱进,为了建立微软的和谐帝国而努力更新更新。要不要学MFC?这个问题值得思考,一般来说,如果你问我这个问题,我会问你两个额外的问题来确定你知道你想问什么。第一个额外问题是:你的工作或者学习需要你在Windows下搞开发么?第二个额外问题是:你所谓的学习,是指仅仅会用会从toolbox拖拽?还是懂得Internal的机理,知道它的优劣?
如果你只是想在Windows下搞界面相关的开发,依此谋生或者做点软件之类,那么学完我推荐那本《内幕》已经差不多足够了。再多看看一些MSDN的相关版本更新文章就足够你在公司里厮混下去。
如果你想了解的更多,其实微软也给你这个机会,MFC实际上是“路一直都在”,CString也好CDialog也好,其实它们的代码微软早就给你了,就在VisualStudio的MFC目录下,完完整整的哦。可是有多少人会去读会去看呢?想了解哪个类的实现或者函数的实现,只要“go to declaration”就可以了。
还有问题?欢迎留言,只要不是白痴问题,我都会尽量回答。