当前位置:C++技术网 > 资讯 > MFC深入浅出之学习笔记(1)

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

更新时间:2016-03-07 13:28:05浏览次数:1+次

  之前看过一篇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的理解,如果有不对的地方,希望大家能指出来,我会好好修正,如果大家也有类似的学习心得,欢迎分享,共同进步。