微信号:cpp_coder

介绍:最专业的C/C++编程学习和程序员发展的综合平台.提供C/C++、汇编语言等、STL、MFC、QT等等学习、数据结构算法思维分析、各领域项目经验分享、资源下载、招聘和资讯的综合服务.

MFC深入浅出之学习笔记(1)

2016-03-08 23:09 cpp_coder

之前看过一篇MFC深入浅出,收获颇多,但还是有很多地方看不懂,看完了孙鑫的《VC深入详解》,再加深了对MFC框架的理解,于是再来看多一次MFC深入浅出。

  MFC深入浅出讲的真的很深入,幸好我对window程序和MFC有所理解,不然真的看不太懂,今天收获到的是MFC中的消息映射,从简单的雏形理解到MFC中的消息映射是如何构成的。

  我们都知道如何在MFC上添加消息响应,通过事件处理程序向导来添加消息响应,如下图所示。

  

  点击添加编译后,就会在程序的三处地方添加代码,如下图所示。

图一:

  

图二:

  

图三:

  

下面我用结构体来模仿MFC的消息映射,代码如下:


#include <iostream>
using namespace std;

struct Message
{
	int n;
	int (*pfn)(int a, int b);
};

int Add(int a, int b);//对应上面的第一张图片

int main()
{
	Message m = {1, Add};//对应上面的第二张图片
	cout << m.pfn(1,2) << endl;;
	return 0;
}

int Add(int a, int b)//对应上面的第三张图片
{
	return a + b;
}

  如果想添加消息,就向变量m中添加新元素,并添加对应的消息处理函数,使用Message结构体模仿MFC的消息映射的这种做法就是MFC的Message Map的雏形,只不过MFC将其中的操作封装得更加精致,也就更加复杂了。


  请注意,Message结构体用到了函数指针,这也运用到了对象的知识,将数据和操作数据的方法封装到一起,所以说C语言也可以实现对象,即面向对象编程。

  以上是我对MFC的理解,如果有不对的地方,希望大家能指出来,我会好好修正,如果大家也有类似的学习心得,欢迎分享,共同进步。


关注微信号,回复“干货”获取干货下载地址(干货即项目源码哦!)或者登陆个人中心下载
  


 
CPP技术网 更多文章 宏、常量、枚举、结构体和共用体对比分析之常量 宏、常量、枚举、结构体和共用体对比分析之结构体 C/C++声明定义初始化和赋值独家剖析深刻理解 mfc的消息机制,多窗口的互动 MFC中的窗口类:C++类与窗口句柄的结合深入浅出分析
猜您喜欢 高薪就业,为你而来 作为一个程序员,进步完全取决自己 穷人的持续集成与持续交付(下) SQL优化(五) PostgreSQL (递归)CTE 通用表表达式 《哭声》| 见神见鬼见人心