使用回调函数发送自定义“消息”

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

使用回调函数发送自定义“消息”之how to do

1、 定义回调函数原型和回调消息

在这里我们定义回调函数的参数为3个,类型均为unsigned int第一个为主ID,第二个为子ID,第三个为发送的数据。(可以根据自己的需要任意设置回调函数的参数个数及类型。)

typedef void (*CallbackMessageFunc) ( unsigned int iMainID,

unsigned int iChildID,

unsigned int iData = 0);

定义主消息

//main msg

enum MAIN_MSG

{

OUTPUT_INFO,

EXIT_PROGRAM,

// other msg

MAIN_MSG_COUNT

};

定义子消息

//child msg of OUTPUT_INFO

enum CHILD_OUTPUT_INFO

{

HELLO_WORLD,

SHOW_ME_THE_MONEY,

//….

};

2、 定义消息接收函数

此函数为全局函数或为类的静态成员函数,并且声明形式与回调函数原型相同。在此用类的静态成员函数作为消息接收函数。

class CMsgReceiver

{

public:

static void OnProcessMsg( unsigned int iMainID,

unsigned int iChildID,

unsigned int iData = 0);

}

3、 定义回调函数的使用者

class CMsgSender

{

public:

void RegisterMsgReceiver(CallbackMessageFunc fpMsgReceiver);

void SendMessage(unsigned int iMainID,

unsigned int iChildID,

unsigned int iData = 0);

private:

CallbackMessageFunc m_fpMsgSender;

}

4、 使用示例:

CMsgSender msgSender;

msgSender.RegisterMsgReceiver(CMsgReceiver::OnProcessMsg);

msgSender.SendMessage(OUTPUT_INFO, HELLO_WORLD);

5、代码下载

code

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航