MFC 初步认识和如何学习MFC的理解
2014-04-27 11:37
302 查看
MFC是用于WINDOW编程的Microsoft C++类库,所有对C++的基础知识一定要熟悉了。
其中一定要把C++中关于构造函数、派生类及虚函数思想 印在脑中。
这几天也网上查看了很多的MFC的教程和一些书,基本都是从MFC自动生成向导开始讲,差不多也只有思想坚持下来的人才可以吧,很容易迷失
MFC 1.0 没有视图和文档。还是从基础的东西开始学习总结,思想固定下来,慢慢深入。
亲自手写代码(不用向导)是最好的。(这是也是这几天的总结下来的,没有人点拔自己慢慢理解吧)
MFC的源代码中使用了大量的宏,尽量把这些都理解了吧
介绍MFC之前总是要了解 用SDK创建窗口过程,可以手写出这段代码最好,理解其的流程,还有一些内部运行细节。
MFC就是对这个基础的框架进行封装,把一些处理过程很好的隐藏了。有一定API基础的(注意MFC替换了什么,隐藏了什么,又怎么处理的)
进一步熟悉API消息机制,(这里会把以前学习API的第一部分作进一步的总结修改),(看到什么想到什么我都会记录下来,这样以后可以看到不至于从重新想一次,还要查看各种资料浪费时间)
查看(HWND 和 HINSTANCE的区别)
这里讲到 HINSTANCE 是一个用来让程序员区分是程序自身还是模块DLL的值。
MFC也是一个应用程序的框架结构。MFC不仅仅是一个类的集合,它还帮助定义了应用程序的结构并为应用程序处理许多杂务。
以CWinApp类为例,该类代表应用程序自身,MFC几乎封装了程序操作的所有方面。
框架结构提供WinMain函数,而WinMain反过来调用应用程序对象的成员函数使程序运行下去。
Run是WinMain调用的一个CWinApp成员函数,它提供了一个消息循环,将消息送到应用程序的窗口。
MFC中以全局的形式提供了各类的API函数,名字以 Afx 打头
AfxGetApp 返回指向应用程序对象的指针
AfxGetMainWnd返回指向应用程序主窗口的指针
AfxGetInstanceHandle 返回标识当前应用程序实例的句柄
PS:开始跟着一个视频教程学了几天,手动封装像MFC那样的MFC启动 类CWnd 和 CFramWnd类,最后还是因为其中的WM_CREATE消息(这里要对WINDOW API消息要熟悉)没有处理好,视频中也没有找到作者的封装过程,思考了几天无及而终,但是学到了很多
(如:对构造函数、虚函数的理解、WinMain函数的入中和其中包含的处理过程,窗口注册 ,创建窗口的封装流程。和另一种用虚函数处理消息的思想(无及而终的主要原因!!!我们知道在创建窗口函数的执行过程中要处理WM_CREATE,不清楚是不是这个原因导致返回的hwnd总是NULL。。。)
下一步:开始学习MFC第一个Hello MFC程序,并初步探究MFC框架运行机制
其中一定要把C++中关于构造函数、派生类及虚函数思想 印在脑中。
这几天也网上查看了很多的MFC的教程和一些书,基本都是从MFC自动生成向导开始讲,差不多也只有思想坚持下来的人才可以吧,很容易迷失
MFC 1.0 没有视图和文档。还是从基础的东西开始学习总结,思想固定下来,慢慢深入。
亲自手写代码(不用向导)是最好的。(这是也是这几天的总结下来的,没有人点拔自己慢慢理解吧)
MFC的源代码中使用了大量的宏,尽量把这些都理解了吧
介绍MFC之前总是要了解 用SDK创建窗口过程,可以手写出这段代码最好,理解其的流程,还有一些内部运行细节。
MFC就是对这个基础的框架进行封装,把一些处理过程很好的隐藏了。有一定API基础的(注意MFC替换了什么,隐藏了什么,又怎么处理的)
进一步熟悉API消息机制,(这里会把以前学习API的第一部分作进一步的总结修改),(看到什么想到什么我都会记录下来,这样以后可以看到不至于从重新想一次,还要查看各种资料浪费时间)
查看(HWND 和 HINSTANCE的区别)
这里讲到 HINSTANCE 是一个用来让程序员区分是程序自身还是模块DLL的值。
MFC也是一个应用程序的框架结构。MFC不仅仅是一个类的集合,它还帮助定义了应用程序的结构并为应用程序处理许多杂务。
以CWinApp类为例,该类代表应用程序自身,MFC几乎封装了程序操作的所有方面。
框架结构提供WinMain函数,而WinMain反过来调用应用程序对象的成员函数使程序运行下去。
Run是WinMain调用的一个CWinApp成员函数,它提供了一个消息循环,将消息送到应用程序的窗口。
MFC中以全局的形式提供了各类的API函数,名字以 Afx 打头
AfxGetApp 返回指向应用程序对象的指针
AfxGetMainWnd返回指向应用程序主窗口的指针
AfxGetInstanceHandle 返回标识当前应用程序实例的句柄
PS:开始跟着一个视频教程学了几天,手动封装像MFC那样的MFC启动 类CWnd 和 CFramWnd类,最后还是因为其中的WM_CREATE消息(这里要对WINDOW API消息要熟悉)没有处理好,视频中也没有找到作者的封装过程,思考了几天无及而终,但是学到了很多
(如:对构造函数、虚函数的理解、WinMain函数的入中和其中包含的处理过程,窗口注册 ,创建窗口的封装流程。和另一种用虚函数处理消息的思想(无及而终的主要原因!!!我们知道在创建窗口函数的执行过程中要处理WM_CREATE,不清楚是不是这个原因导致返回的hwnd总是NULL。。。)
下一步:开始学习MFC第一个Hello MFC程序,并初步探究MFC框架运行机制
相关文章推荐
- jquery获取URL参数
- winfrom中,嵌入的资源文件路径,并读取txt文件
- 创建文件夹
- Centos6.4 openNebula
- 长按事件之setOnItemLongClick与 onCreateContextMenu比较分析
- [Poj2398]Toy Storage
- STL之vetor 排序
- python3 解析html
- 生活随笔:职业、领域、转型
- UML之构件图
- WinForm窗体之间传值
- 程序4-1 对每个命令行参数打印文件类型
- STL之vetor 排序
- 1288: 计算几何练习题——线段相交
- 隐藏tabelView多余的cell
- js实现页面跳转的几种方式
- mysql的test 库的相关特性
- 垃圾回收机制与变量周期,不成熟见解。
- Java4Android(第46~49集)eclipse工具及使用
- 用链表写的学生管理系统 成绩的录入与查询都已经是实现了