您的位置:首页 > 其它

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

2005-03-09 10:56 399 查看
使用回调函数发送自定义“消息”之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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: