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

  • 相关阅读:
    MVC模式-----struts2框架(2)
    MVC模式-----struts2框架
    html的<h>标签
    jsp脚本元素
    LeetCode "Paint House"
    LeetCode "Longest Substring with At Most Two Distinct Characters"
    LeetCode "Graph Valid Tree"
    LeetCode "Shortest Word Distance"
    LeetCode "Verify Preorder Sequence in Binary Search Tree"
    LeetCode "Binary Tree Upside Down"
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333281.html
Copyright © 2011-2022 走看看