mfc是什么?请帮忙回答一下,谢谢。怎么才能学好?
MFC是微软出的一个图形化界面类库,是用C++对系统的API重新封装的一个库。
微软的API都是用C写的,如果你了解C的话,就应该知道,面向过程的语言写的函数,都是全局的,随时都可以使用任何一个函数。但是面向过程的语言,只有对象才能调用自身内部的成员函数,比如A类对象是不能调用B类对象的成员函数一样。
对于做底层开发的话,面向过程的语言比较灵活,不受到对象的限制。但是如果你要做一个大型软件的话,对象、函数之间的关系会比较混乱,不方便管理和使用,开发效率比较低效。可以说现在的软件基本都是用面向对象的语言为主体的。
正是这个原因,微软从新将API进行封装,利用C++的特性封装成了一个第三方库。把面向过程的库转成了一个面向对象的库,通过加入一些可复用的框架,大大减轻了开发负担。但是因为是浅层封装,简单的说就是封装到C++的类中,然后这个类的成员再间接调用这些函数,所以有些比较复杂的东西,最后还是要回到这些API的问题上。
如果你只是想运用的话,单单学MFC就可以了,了解MFC的框架,就可以写一些不错的图形界面软件。但是如果你想深入,把一个图形界面的软件做得更好,更完善,就必须回到API的学习上,了解windows程序的原理,调用机制等等,MFC主要学的还是可复用的框架。
不用了解API本身,是了解API的工作机制,API的功能都可以在MSDN上查到,没必要去记API是做什么的
如果要学好MFC,建议你先看看《windows程序设计(第五版)》,先了解windows程序原理。这本书的作者是微软的核心职员,对windows程序设计的剖析非常独特,这本书被称为是windows程序设计的圣经。不过可惜作者已经投入到C#的怀抱,已经十多年没更新了,但windows的核心原理还是一直不变的。
看完这本,你就可以开始看关于MFC的书,推荐看《深入浅出MFC》。如果你看了前面一本,你会发现最开始讲windows程序设计的原理时都是上门那本里出现过的。
不过嘛MFC是建立在C++基础上的,如果你对C++的类机制(继承,虚函数等等)不是很了解的话,就暂时不要学MFC了,先去把C++基础看熟了再来。MFC大量运用了这些特性,特别是虚函数什么的。如果没有扎实的基础,很容易搞晕。
当然如果你是个 API 高手,那你可以完胜 MFC 高手。