visual C ++与MFC的关系

来源:互联网 发布:java工作内容描述 编辑:程序博客网 时间:2024/05/12 11:40


我现在学完了C和C++(大学教程),准备看《windows程序设计》、《MFC》、《viusal C++》。。提问如下。
①现在所不了解的是VC与MFC的关系,我了解到 VC 编译器提供了非常强大C++类库,那这个所谓的类库中的类是不是就是MFC??如果是的话,那么visual C++的精华所在是不是就是在于MFC?也就是通过MFC这些强大的类实现可视化以及更多的功能?
②windows程序设计是用C语言写的还是C++写的?若是C++,那是否用到了MFC?如果是C,那么那些强大的类又叫什么?也叫MFC吗?难道MFC支持C与C++?
③以上的3本书我应该按照什么顺序来看?
好的,问题就这么多,先谢谢回答过的人,但是如果说答者自己对这些东西也不是和懂的话,那么请不要作答,免得使我更糊涂了,谢谢配合。


楼主的问题已经好多人回答了,鉴于自己上学时也在这些问题上纠结过,忍不住也想回复下 ^_^

     楼主应该打开过 VC 这个软件吧,你可以看一下新建工程的时候,有好多项目类型可以选择,例如,win32应用程序,win32控制台,MFC应用程序等等,所以 VC 只是一个开发环境,你可以选择使用MFC,也可以选择不使用MFC写你的软件。MFC是微软提供的一套类库,是一个类的集合,统称MFC,楼主学过数据结构的话,应该知道链表,队列,map等等这些东西,C语言里用char*,C++里用string表示字符串,MFC对这些都有自己的封装 CArray,CMap,CString等。

     但是,MFC重要且常用的一部分是对窗口的封装。CWnd,CDialog,CButton等等。我们拿软件上的按钮来说,不适用MFC,直接用Win32 的API 函数来创建,我们要用CreateWindow函数先创建出来,还要计算按钮的大小,位置等等。但是用MFC,我们想创建一个按钮,直接在工具箱里拖到界面上,调整位置和大小也就是动动鼠标的事,一句代码不用写就出来了。这也是MFC的优越之处。

   那么,我们一般说的 windows 程序设计,和 MFC 程序是什么关系呢?其实,一般我们说的windows程序就是不使用MFC类库里的东西,直接用 API 写的程序,显而易见,我们创建一个按钮就需要写函数,计算位置等等这些过程,要是建一个复杂的界面,肯定要写很多代码。MFC的程序当然就是使用了MFC的程序了。

   MFC 关于窗口这一块的封装,其实就是封装的 win32 API。像MFC里CWnd这样的窗口类,最后还是调用的 API 函数 CreateWindow,只是微软为了方便开发人员快速的开发软件,帮我们处理了,借助 VC 和 MFC 给我们一个所见即所得环境。

   直接用 Win32 API 编程类似于 C 语言的面向过程编程,还是因为MFC为了方便我们开发,通过一些封装等手段,使得我们开发应用程序,能以面向对象的方式开发了。

   C++重要的地方在于这种面向对象的思想,MFC又何尝不是C++思想的一个实现?我们用C语言编程,显示一个东西用 printf,在C++里可能用 cout 这些函数还不都是 C,或者C++ 的库提供给我们的? 在VC下开发,别管用不用MFC,只要包含了 C 或者 C++ 的头文件,链接了库文件,都是可以使用的。

    虽然 MFC 提供了这么方便的开发方式,但是在方便的同时,MFC隐藏的细节太多,使我们看不清程序后面的机制了,上面说,MFC是对 win32 API 的封装,所以要想清楚的知道窗口是怎么出来的,又是怎么响应用户的,还是要从 windows 编程开始。

    个人推荐,先看,windows程序设计,再学习MFC,起码先把windows编程关于创建窗口,消息处理搞明白以后再看MFC,既然MFC封装的就是这些东西,你把MFC底层的细节了解一二了,还怕学不会MFC?  希望能帮到楼主  ^_^

0 0
原创粉丝点击