C++的学习过程是痛苦的,不过学习这类很接近底层的低级语言可以给我们带来巨大的收获。不过入门以后,一切都豁然开朗了。说实话,C++学习完毕以后,可以做的事情很少。而且它的开发效率奇低。据说Ruby是C++开发效率的20倍以上,而且C++的内存管理很蛋疼,什么东西都需要自己手动去回收,一不小心就内存泄露了。不扯这些蛋了,步入主题吧。
Windows下应用程序开发的霸主:MFC(Microsoft Foundation Classes)
其实MFC就是微软的一个函数类库,里面封装了许多函数,底层的实现是靠Win32的。在现有的架构上编写软件很easy,只是里面有好多类,还有好多种消息。不像QT的信号与槽机制一样,那么容易理解。网上很多人喷MFC的,说这是一种淘汰的架构,但是学习MFC可以了解到Windows底层的消息机制,况且这么难,这么痛苦的架构学好了,其他的还不是小case?
Windows下应用程序开发的霸主:MFC(Microsoft Foundation Classes)
其实MFC就是微软的一个函数类库,里面封装了许多函数,底层的实现是靠Win32的。在现有的架构上编写软件很easy,只是里面有好多类,还有好多种消息。不像QT的信号与槽机制一样,那么容易理解。网上很多人喷MFC的,说这是一种淘汰的架构,但是学习MFC可以了解到Windows底层的消息机制,况且这么难,这么痛苦的架构学好了,其他的还不是小case?
MFC的主要类层次:
上面这张图是Hierarchy Chart(寄生图表),介绍了MFC封装的这些类的层次结构。
其中最主要的几个类有CFrameWnd, CView, CWinApp, CDocument
CFrameWnd类往往用于创建应用程序的主窗口,因为它能很好地支持系统菜单和控制条(工具栏、状态条等)。说白了就是程序的框架。
CView是视图程序设计中使用率最高的窗口对象,它是用户的主要操作界面。因为它通常以某种形式表示文档数据,所以称之为视图。
以上两个类都继承于窗口类CWnd。
CWinApp类是应用程序的管理者,MFC中一个全局的对象theApp,管理程序的生死,操纵每一个对象的产生。
CDcument类是文档类,为用户定义的文档类提供了基本的函数功能。支持标准操作,如创建、装载、保存等。框架用CDocument定义的界面来操作文档。