首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

生手怎样学学好MFC,求学习MFC的正确路径

2013-01-08 
新手怎样学学好MFC,求学习MFC的正确路径。本帖最后由 leigema 于 2012-05-08 16:17:02 编辑发现MFC难理解,

新手怎样学学好MFC,求学习MFC的正确路径。
本帖最后由 leigema 于 2012-05-08 16:17:02 编辑 发现MFC难理解,我宿舍的一哥们照着一本VC书,写了一个程序。我问他WinMain函数在哪个文件,他都不知道,每个文件是干什么的他也不知道。遇到问题就百度。甚至各个目录下面是什么文件他也不知道。MFC难学吗?

1.学MFC,需不需要先学windows SDK编程,就是先用C+windows api    这样是不是对后面理解MFC有很大帮助?

2.MFC对C++基础的要求是多大?一些VC的书貌似没有C++基础的人也是它的定位读者,一般先给出一点C++的教程后立马开始MFC了?

3.学MFC是不是要先理解他的框架?


MFC真的那么难吗?MFC存在的意义不是简化windows程序员编程的难度吗?

好吧其实我想问怎么正确的MFC学习,进阶路线。。


[解决办法]
    看你的问题主要是不知道VC的程序框架,编程思路还停留在普通C语言上,也就是有个main函数.VC不是这样,同样,现在其它的软件也不是这样了.
    只要你把常用的MFC库知道就行了,程序算法和具体软件无关.
    你可以先生成一个对话框,然后执行看效果,看到效果后,再看都生成了哪些文件,弄明白第个文件及类是干什么的.
    然后再生成一个单文档视图,再编绎并看执行效果,看到效果后再看都生成哪些文件,弄明白每个文件及类是干什么的,都弄明白后就没问题了,剩下的就是熟悉MFC库,这个就需要边编边熟悉了.
    所有软件都是个工具,没什么难的,就是看应用工具水平而已,而算法才是关键
[解决办法]
1、学习MFC前先学下Windows API 然后学MFC会容易点。但不是必须的。
2、学习MFC之前把先把C++基础打好,如果一开始就MFC的话,C++以后你也会补习的。
3、学习MFC不需要了解其他框架,因为MFC本身就是微软的一个开发库。
学习路线:
《Windows程序设计》->孙鑫的《MFC深入详解》->侯捷的《深入浅出MFC》->《Win32多线程编程》->《windows核心编程》
《数据结构》必须要看的,《Effective C++》对C++提升。

MFC对于不会的人感觉难,对于会的人感觉不难。
只要lz用心努力学习,没有什么难的。
[解决办法]
MFC是一个框架,他封装了几乎所有常用的API,你先学会Win32 SDK编程,再来学MFC肯定会好一些,但也不是说必须学.

学MFC和学习C++是两个概念,C++是语法,MFC是应用.开发MFC程序,肯定需要C++基础.

MFC的框架有一些不合理的地方,从现在的很多流行框架来看比较落后了,学习起来有一定难度,但你开发一些常用的程序,并不难学.

很急的话,就看<<MFC程序设计>>第二版.
[解决办法]
c++语言要了解,WINDOWS消息机制必须掌握,SDK编程也要知道(个人感觉,要成为program高手,SDK必须),MFC的封装性很高,需要时间和经验。
n年前看孙鑫的那个VC视频感觉不错。
学编程一个很好的方法:
一开始写一个dialog程序,每学一些新内容,在这个对话框上加(千万不要另建新工程),就在你自己的程序上加。这个过程中你会遇到很多问题,一一解决,一段时间后,你的这个dialog就非常丰满了,你会很有成就感。
然后改成单文档和多文档。
[解决办法]
我也是最近才开始学MFC的...
首先VC中用的就是C++..最主要的就是其中类的框架..
这是逻辑上与C的不同..
我觉得学习MFC对于语言要求不是很高,但是如果要自己编写代码了,就还是需要语言基础的..
反正,作为新手..多问多查才是学习的最好办法~
[解决办法]
看看孙鑫的VC++视频,网上有很多,边看边写,等入门之后,看看VC++实用教程,自己尝试着做些小应用。
如果想再深入,看看深入浅出MFC和windows程序设计(第五版)。
[解决办法]
WinMain函数在——
X:\Program Files\Microsoft Visual Studio X.0\VC\atlmfc\src\mfc\appmodul.cpp

extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine, int nCmdShow)
#pragma warning(suppress: 4985)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}

慢慢来
[解决办法]
先把理论打扎实把,当然如果急着用的话也可以先把工具用熟练再学习其中的原理,只不过过程会比较痛苦
[解决办法]
MFC上手最快的方法就是找本实例教程照着做
想不要管什么深层原理
等能做出东西了再慢慢理解
[解决办法]
这个问题我早就回答过,正确的MFC学习路线:

C -> Windows API -> C++ -> MFC

大多数人的路线:

MFC -> C++ -> Windows API -> C

解释: 
正确 :  应先有C的基础(否则你很难看懂Windows API),然后学习Windows API编程,
待有一定基础后,学习C++语言,待C++语言有一定掌握后,学习MFC。



错误: 很多人着急看到成果,先用MFC向导之类生成程序,然后发现有些东西不明白,反过头
学习C++,然后发现MFC是包装Windows API的,再去了解API,等有一定基础后,发现还要有
C的基础才能学API。




[解决办法]
上面的评论说了一些解决的办法,我觉得并没有解决真正说道点子上,LZ之所以在MFC的学习过程中遇到这样的困惑,我觉得是因为没有搞懂一个很基础的问题:MFC作为一个程序框架为什么要这么设计?

要弄懂这个问题,首先就得搞明白如果不这么设计,原来的Windows程序是怎么搞的。所以Windows程序设计的基础知识是必须要掌握的一个东西。这也就是为什么会有许多前辈发出“把基本的Windows编程搞懂了,MFC很容易”这样的感慨的原因了。

除了Windows基础,还有一个基础更加重要,这就是面向对象思想的基础。楼上有许多推荐学习C++语言的,我个人觉得对于C++真正应当学习的是这门语言中蕴含着的面向对象的思想。当然,思想这种东西是很难一蹴而就的,需要靠大量的时间和经验来积累。这大概就是为什么许多牛人在指导菜鸟时会首先提出“学习面向对象思想”这条建议的原因吧。

就我自己而言,是抱着“用面向对象的思想来分析MFC”这种想法来学习MFC的。一开始并没有拘泥于WinMain函数在哪里这种小细节,而是把重点放在了MFC如何用面向对象来封装原本的Windows程序上。经过这样的分析,对于MFC框架中为什么会有CWnd,CWinApp类这些问题,很容易就能得出相应的结论,在实际进行程序开发时,也能做到心中有数了。

看楼主的情况,恐怕Windows SDK和面向对象思想这两个基础都掌握的不是很好,我还是建议先从这两个基础学起。至于很多人建议的《VC++深入详解》,我在初学时也看过,个人并不是很看好,这本书对于Windows基础和面向对象思想都没有很好地进行梳理,感觉只是授人以鱼,没有提到点子上。如果楼主只是刚开始学,时间上比较充足的话,最好还是不要走这条捷径,长远看来只是能锻炼出码农而已。
前面有人推荐的《Windows程序设计》是本非常经典的作品,不过确实是太厚了,楼主有决心的话可以看看。
至于面向对象思想的学习,就像前面说的,不是一朝一夕能学会的,这个上面没什么书之类的可以推荐,只能说平时多进行练习吧。
[解决办法]

引用:
发现MFC难理解,我宿舍的一哥们照着一本VC书,写了一个程序。我问他WinMain函数在哪个文件,他都不知道,每个文件是干什么的他也不知道。遇到问题就百度。甚至各个目录下面是什么文件他也不知道。MFC难学吗?
1.学MFC,需不需要先学windows SDK编程,就是先用C+windows api    这样是不是对后面理解MFC有很大帮助?
2.MFC对C++基础的要求是多大?一些V……

我的学习过程:
学完C后,想学MFC,一窍不通。
学完C++后,基本看懂MFC的类。
琢磨清楚MFC一开始生成的代码是如何调用的?各个函数的作用?
理解了基本框架,学习MFC类,同时应用API。写个小项目足以。

热点排行