zoukankan      html  css  js  c++  java
  • 使用回调函数发送自定义“消息”

    使用回调函数发送自定义“消息”之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

  • 相关阅读:
    多一盎司定律
    工作职场中,需要养成并实践的思维模型
    中国易经大师排名,易学十大泰斗人物
    大易人生 --- 曾老
    中道管理 --- 曾老
    大数据分析的道与术
    人应该服从自己的规划
    练习不是让你一次就把事情做好,而是帮助你做的越来越好
    让理想转个弯
    在酒桌上就能搞定生意
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333281.html
Copyright © 2011-2022 走看看