清泛IT社区

搜索
App Inventor 2 中文社区 轻松创建Apps

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.69

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通VIP送小红花App Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 556|回复: 0
打印 上一主题 下一主题

ON_COMMAND_EX、ON_COMMAND区别

  • TA的每日心情
    开心
    2024-03-14 20:36
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    70

    主题

    117

    帖子

    1365

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1365
    跳转到指定楼层
    楼主
    发表于 2015-03-18 21:12:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    ON_COMMAND  命令消息普通映射宏

    ON_COMMAND_EX  命令消息扩展映射宏

    扩展映射宏和对应的普通映射宏的参数个数相同,含义一样。

    但是扩展映射宏的消息处理函数的原型和对应的普通映射宏相比,有两个不同之处:

    一是多了一个UINT类型的参数,另外就是有返回值(返回BOOL类型)。

    回顾4.4.2章节,范围映射宏ON_COMMAND_RANGE的消息处理函数也有一个这样的参数,该参数在两处的含义是一样的,

    即:

    命令消息扩展映射宏ON_COMMAND_EX定义的消息处理函数解释该参数是当前要处理的命令消息ID。

    返回值:如果扩展映射宏的消息处理函数返回FALSE,则导致当前消息被发送给消息路径上的下一个消息目标处理。


    综合来看,ON_COMMAND_EX宏有两个功能:

    一是可以把多个命令消息指定给一个消息处理函数处理。这类似于ON_COMMAND_RANGE宏的作用。不过,这里的多条消息的命令ID或者控制子窗口ID可以不连续,每条消息都需要一个ON_COMMAND_EX宏。

    二是可以让几个消息目标处理同一个命令或者通知或者反射消息。如果消息发送路径上较前的命令目标不处理消息或者处理消息后返回FALSE,则下一个命令目标将继续处理该消息。

    对于通知消息、反射消息,它们也有扩展映射宏,而且上述论断也适合于它们。例如:

    ON_NOTIFY对应的ON_NOTIFY_EX

    ON_CONTROL对应的ON_CONTROL_EX

    ON_CONTROL_REFLECT对应的ON_CONTROL_REFLECT_EX

    等等。

    范围消息映射宏也有对应的扩展映射宏,例如:

    ON_NOTIFY_RANGE对应的ON_NOTIFY_EX_RANGE

    ON_COMMAND_RANGE对应的ON_COMMAND_EX_RANGE

    使用这些宏的目的在于利用扩展宏的第二个功能:实现消息的多次处理。


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-05-19 17:18 , Processed in 0.014207 second(s), 28 queries .