功能:实现编辑框和滑块控件之间的数据联动
描述:改变滑块控件的位置 对应的值出现在编辑控件上
 在编辑控件中输入值 对应的改变滑块控件的位置

首先还是在资源文件中 添加对应控件 以及name属性 上一篇【SOUI按钮消息事件】有介绍

在MainDlg.h文件中的EVENT_MAP_BEGIN()与EVENT_MAP_END()中间 添加对应的消息事件

MainDlg.h文件

EVENT_MAP_BEGIN()
//……
EVENT_NAME_HANDLER(L"ScrollTest", EVT_SCROLL, OnNotifyScrollFun)
EVENT_NAME_HANDLER(L"showscrolldata", EVT_RE_NOTIFY, OnNotifyEditFun)
//……
EVENT_MAP_END()

//说明:EVENT_NAME_HANDLER(L"ScrollTest", EVT_SCROLL, OnNotifyScrollFun)
//ScrollTest:控件的name属性
//EVT_SCROLL:滑块控件对应的事件系统参数,在头文件 Events.h中定义
//OnNotifyScrollFun:对应的控件的函数处理

声明对应的消息事件

void OnNotifyScrollFun(EventArgs *pEvt); //显示滑动控件变化的事件
void OnNotifyEditFun(EventArgs *pEvt); //显示编辑控件变化的事件

自定义函数的实现

//改变滑块控件的值 然后将值显示在Edit控件中
void CMainDlg::OnNotifyScrollFun(EventArgs *pEvt)
{EventScroll *ptr = sobj_cast<EventScroll>(pEvt);SASSERT(ptr);int pos = ptr->nPos;pEdit = FindChildByName2<SEdit>(L"showscrolldata");pEdit->SetWindowTextW(SStringT().Format(L"%d", pos));//pScroll = sobj_cast<SScrollBar>(pEvt->sender);//SASSERT(pScroll);//int pos = pScroll->GetPos();//pEdit = FindChildByName2<SEdit>(L"showscrolldata");//pEdit->SetWindowTextW(SStringT().Format(L"%d", pos));
}//改变编辑框的值 让值映射到滑块控件上去
void CMainDlg::OnNotifyEditFun(EventArgs *pEvt)
{pEdit = sobj_cast<SEdit>(pEvt->sender);SASSERT(pEdit);SStringT strResult = pEdit->GetWindowTextW();//给编辑框 来设定输入数据的长度if (pEdit->GetWindowTextLengthW() > 2){//SMessageBox(NULL, L"数据输入不合法,请输入数字,长度不超过2位", L"Tip", MB_OK);pEdit->SetWindowTextW(L"");return;}for (int i = 0; i < strResult.GetLength(); i++){char temp = strResult[0];if (temp < '0' || temp > '9'){//SMessageBox(NULL, L"数据输入不合法,请输入数字,长度不超过2位", L"Tip", MB_OK);pEdit->SetWindowTextW(L"");return;}}int pos = _ttoi(strResult);pScroll = FindChildByName2<SScrollBar>(L"ScrollTest");pScroll->SetPos(pos);pScroll->Invalidate();  //刷新控件 保证及时显示出控件的位置 这个很重要
}

小结:

1.事件系统的参数 在Event.h文件中 可以得到结果 具体的定义可参照对应的类 在那个Event.h里面有定义

2.对控件(尤其是带有显示改变属性的那种类型)改变状态后 一定要Invalidate更新控件的状态

3.对于消息订阅事件 也就是包含在EVENT_NAME_HANDLER中的定义方法 一定是要带参数的

例如void OnNotifyScrollFun(EventArgs *pEvt); //显示滑动控件变化的事件 对应的消息事件 都是带有参数pEvt的,这个参数
很重要

SOUI消息订阅事件实例相关推荐

  1. Vue(组件间通信:props、自定义事件、全局事件总线、消息订阅与发布)

    一.props props不仅可以实现父给子传递信息,还可以进行子给父传递信息 1.父给子传递信息: 父组件中给子组件实例传递信息 子组件利用props进行接收组件传递信息(接收方式有三种:数组.对象 ...

  2. c# 创建委托 消息订阅_C#面向对象之委托和事件

    委托 1.定义:委托也叫代理,就是把事情交给别人来做. 2.声明委托语法: delegate 返回类型 委托名称(); 委托使用步骤 1.声明委托 public delegate int Calcul ...

  3. WCF 4.0 进阶系列 – 第十六章 使用回调合约发布和订阅事件(第二部分)

    使用回调合约通知客户端单向操作的结果 使用回调合约的原则是,提供一个服务,该服务采用单向操作-不返回任何信息-的方式通知客户端程序.本小节的例子基于之前描述过的更改产品价格场景.当客户端程序调用Pro ...

  4. Vue学习之--------消息订阅和发布、基础知识和实战应用(2022/8/24)

    文章目录 1.基础知识 2.代码实例 2.1 main.js 2.2 School.vue 2.3 Student.vue 2.4 App.vue 3.全局事件总线通信改为消息的订阅和发布 3.1 核 ...

  5. 嵌入式消息订阅发布模式软件框架

    文章目录 一.总体框架 二.基于RT-Thread的SoftBus 2.1 SoftBus的由来 2.2 消息订阅者模式 2.3 静态订阅关系与动态订阅关系 2.4 C/S模式 2.5 消息订阅者模式 ...

  6. 深入biztalk消息以及消息订阅发布路由机制(二)-消息订阅【转】

    一.消息订阅 订阅消息的主体叫订阅服务器,订阅服务器是可以订阅并消费消息的服务,可以作为订阅服务器的服务类型目前有四类,在BizTalkMgmtDb管理数据库中的adm_ServiceClass的Na ...

  7. c# 使用线程方式实现消息订阅

    在下程序的时候,经常会碰到这样一种情况: 定义的变量会影响多个控件的数值,当变量有变化的时候,需要更新多个控件,这多个控件可能会在不同的界面中,管理起来非常麻烦,这个时候就要用到消息订阅,下面是详细的 ...

  8. 阿里云消息队列 RocketMQ 5.0 全新升级:消息、事件、流融合处理平台

    从"消息"到"消息.事件.流"的大融合 消息队列作为当代应用的通信基础设施,微服务架构应用的核心依赖,通过异步解耦能力让用户更高效地构建分布式.高性能.弹性健壮 ...

  9. 云栖发布|阿里云消息队列 RocketMQ 5.0:消息、事件、流融合处理平台

    简介:RocketMQ5.0 的发布标志着阿里云消息正式从消息领域正式迈向了"消息.事件.流"场景大融合的新局面. 引言:从"消息"到"消息.事件.流 ...

  10. 云原生消息、事件、流超融合平台——RocketMQ 5.0 初探

    简介:今天分享的主题是云原生消息事件流超融合平台 RocketMQ 5.0 初探,内容主要分为三个部分: 首先,带大家回顾业务消息领域首选 RocketMQ 4 发展历史以及 4.x 版本的演进与发展 ...

最新文章

  1. 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]
  2. 关于滑动条滚动 scroll兼容
  3. pandas读取excel,设置默认读取类型
  4. DC/DC变换器的典型拓扑
  5. 如何修改微软share point site 的页面风格
  6. Java8 Stream详解~聚合(max/min/count)
  7. mysql数据的表分区二
  8. javascript 数组操作函数
  9. mysql 8.0 手册
  10. veeam 备份文件服务器,如何用veeam给windows服务器做备份?
  11. 4.10招商银行笔试编程题
  12. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day17】—— 数据库4
  13. 信息安全—WIFI攻击实验
  14. html默认样式总结
  15. UPS 静态旁路开关
  16. 城市轨道交通信号系统学习笔记(一)信号系统的特点
  17. php获取本机IP地址
  18. 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
  19. Red Hat Enterprise Linux 8.8 正式版
  20. [COCI2008-2009#2] PERKET

热门文章

  1. 路由跟踪的原理tracert
  2. Debian安装软件商店-Debian的GUI软件管理
  3. js加载flv格式视频
  4. [SUCTF 2018]GetShell
  5. 弹簧优化设计MATLAB,基于Matlab的圆柱螺旋弹簧可靠性优化设计
  6. erp故障处理流程图_(完整版)最新鼎捷易助ERP常见问题故障及解决方案方法FAQ
  7. 热血江湖单机版不显示服务器,热血江湖单机版
  8. iOS开发-Xcode8兼容iOS7手记
  9. 夏普计算机各键功能,夏普打印机按键说明
  10. 蒸汽密度的计算公式,蒸汽流量计密度补偿计算公式