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


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

  • 相关阅读:
    arcgis api 3.x for js 入门开发系列八聚合效果(附源码下载)
    arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)
    arcgis api 3.x for js 入门开发系列六地图分屏对比(附源码下载)
    arcgis api 3.x for js 入门开发系列五地图态势标绘(附源码下载)
    arcgis api 3.x for js 入门开发系列四地图查询(附源码下载)
    Java里面获取当前服务器的IP地址
    Flutter at Google I/O 2018
    Modbus RTU 协议使用汇总
    plsql 创建表空间、用户、赋予权限
    Oracle:ODP.NET Managed 小试牛刀
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333281.html
Copyright © 2020-2023  润新知