博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[原创]通过函数指针实现事件消息处理
阅读量:4550 次
发布时间:2019-06-08

本文共 1479 字,大约阅读时间需要 4 分钟。

经过下面几个步骤可以实现通过函数指针实现事件消息处理:

步骤1:在某一个.h文件中定义以下函数指针类型MouseCLick,比如在CallbackEventModel.h文件中添加如下代码:

typedef int (*MouseCLick)( int a, int b);

步骤2:在需要使用事件的类中定义一个MouseCLick类型的函数指针:

下面的类CallbackUser是需要实现事件的的类:

===========================================================头文件===================================================================
#pragma once#include "CallbackEventModel.h"//包含函数指针类型定义所在的头文件class CallbackUser{public:    int _a;    int _b;    MouseCLick  _InvokerFun;//在需要使用事件的类中定义一个MouseCLick类型的函数指针public:    CallbackUser(    int a,    int b);    CallbackUser(void);    ~CallbackUser(void);};===========================================================实现文件===================================================================#include "StdAfx.h"#include "CallbackUser.h"CallbackUser::CallbackUser(void){    _a=0;    _b=0;}CallbackUser::CallbackUser(    int a,    int b){    _a=a;    _b=b;}CallbackUser::~CallbackUser(void){}

步骤3:定义函数指针所绑定的事件处理函数CallbackFunction:

int CallbackFunction(int a, int b){    return a+b;}

步骤4:在需要调用的地方和时候实例化类对象,并将类中的函数指针具体绑定到待调用的事件处理函数上:

CallbackUser * caller=new CallbackUser(1,2);//类的实例化caller->_InvokerFun=CallbackFunction;//将类中的函数指针具体绑定到待调用的事件处理函数

步骤5:在需要调用的地方和时候发起事件处理函数的调用:

int result=caller->_InvokerFun(3,4);//具体事件处理函数的调用//输出方式1:printf("结果是:%d\n",result);//输出方式2:char output[128];sprintf_s(output, "结果是:%d\n", result); OutputDebugStringA(output);
结果是:7

 源码下载:

编译环境:VS2008 IDE,VC++,Win7 32位

转载于:https://www.cnblogs.com/rainbow70626/p/8883654.html

你可能感兴趣的文章
常用模块-02
查看>>
接口测试总结
查看>>
测试的基本概念
查看>>
【ZOJ】3209 Treasure Map
查看>>
ActiveMQ 消息队列服务
查看>>
《程序是给自己看的还是给别人看的》
查看>>
(12) PHP 随笔---Smarty模板引擎 单模板多缓存、局部不缓存 20--21
查看>>
【转】Math.Atan2 方法
查看>>
C++设计模式之工厂方法模式
查看>>
poj3984_bfs+回溯路径
查看>>
MyEclipse使用技巧
查看>>
[译]径向镜片反畸变滤波
查看>>
畅通工程-最小生成树+并查集
查看>>
top命令输出解释以及load average 详解及排查思路
查看>>
Ajax的封装
查看>>
Java传入参数个数不确定可用(Type ... values)
查看>>
POJ 2081
查看>>
记录下zend studio 的xdebug 在调试安装
查看>>
ES6阅读笔记
查看>>
数字基带信号分类
查看>>