多个按钮共用一个消息响应函数

简介:

在特殊情况下,需要多个按钮共用一个消息处理.如工具栏上的按钮,行为都类似.可以考虑用同一个消息响应函数,来减少代码的冗余.
一、在消息映射中添加关联的消息响应关系

1
2
3
4
5
BEGIN_MESSAGE_MAP(CscaleweightDlg, CDialog)
     ...
     ON_CONTROL_RANGE(BN_CLICKED, 9000, 9006, &CscaleweightDlg::OnClickedToolBar)
     ...
END_MESSAGE_MAP()

一共有7个按钮,ID分别为9000~90006
二、在.h文件中添加响应函数

1
afx_msg  void  OnClickedToolBar( UINT  id);

三、在cpp中编写响应的函数体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void  CscaleweightDlg::OnClickedToolBar( UINT  ID)
{ //工具栏事件处理
     NormalToolBar(ID); //其他按钮恢复正常颜色
     switch  (ID)
     {
         case  9000:
              AfxMessageBox(_T( "0" ));
         break ;
 
         case  9001:
             AfxMessageBox(_T( "1" ));
             break ;
 
         case  9002:
             AfxMessageBox(_T( "2" ));
             break ;
 
         case  9003:
             AfxMessageBox(_T( "3" ));
             break ;
 
         case  9004:
             AfxMessageBox(_T( "4" ));
             break ;
 
         case  9005:
             AfxMessageBox(_T( "5" ));
             break ;
 
         case  9006:
             AfxMessageBox(_T( "6" ));
             break ;
     }
     
}

根据不同的ID,确定相应的按钮动作。
wKiom1nnVPHR3HkYAAEUCZ8P0OM901.png
















本文转自Chinayu201451CTO博客,原文链接:http://blog.51cto.com/9233403/1973935 ,如需转载请自行联系原作者








相关文章
|
5月前
|
缓存 NoSQL Java
校招 Java 面试常见知识点及实战案例全解析
本文全面解析了Java校招面试中的常见知识点,涵盖Java新特性(如Lambda表达式、、Optional类)、集合框架高级应用(线程安全集合、Map性能优化)、多线程与并发编程(线程池配置)、JVM性能调优(内存溢出排查、垃圾回收器选择)、Spring与微服务实战(Spring Boot自动配置)、数据库与ORM框架(MyBatis高级用法、索引优化)、分布式系统(分布式事务、缓存应用)、性能优化(接口优化、高并发限流)、单元测试与代码质量(JUnit 5、Mockito、JaCoCo)以及项目实战案例(电商秒杀系统、社交消息推送)。资源地址: [https://pan.quark.cn/s
188 4
|
JavaScript Java 关系型数据库
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
571 0
民宿预定管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
|
SQL 关系型数据库 数据库
PostgreSQL常用命令,启动连接,pg_dump导入导出
PostgreSQL常用命令,启动连接,pg_dump导入导出
|
机器学习/深度学习
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(二)
基于机器学习模型预测信用卡潜在用户(XGBoost、LightGBM和Random Forest)(二)
271 1
|
JSON JavaScript 编译器
同事写的console.log太多令人烦恼?来手撕一个vite插件去掉它
同事写的console.log太多令人烦恼?来手撕一个vite插件去掉它
|
架构师 Java 关系型数据库
基于Springboot+vue实现前后端分离二手图书交易
基于Springboot+vue实现前后端分离二手图书交易
148 0
|
安全 算法 网络安全
阿里云转发路由器:构建企业级互联网络的强大引擎
本文探讨了阿里云转发路由器的核心功能和优势,包括同地域和跨地域的流量转发、灵活的互通和隔离策略、云数据传输服务等。通过学习评测,用户可以更好地了解如何将VPC实例连接至云企业网,实现不同VPC之间的互通,并控制流量互通。阿里云转发路由器为企业提供了一张灵活、可靠、大规模的互联网络,是构建企业级网络的重要组件。
600 0
|
Oracle Java 关系型数据库
JDK配置,eclipse运行 web通过apache-tomcat,mysql配置
JDK配置,eclipse运行 web通过apache-tomcat,mysql配置
229 0
|
Arthas 自然语言处理 监控
Java Agent入门实战(一)-Instrumentation介绍与使用
Instrumentation: 在计算机科学技术中的英文释义是插桩、植入。 instrument: 仪器(仪器是指用以检出、测量、观察、计算各物理量、物质成分、物性参数等的器具或设备。)
1001 0
Java Agent入门实战(一)-Instrumentation介绍与使用
|
弹性计算 数据挖掘 调度
阿里云服务器ECS通用算力型u1和经济型e实例有什么区别?
阿里云服务器ECS经济型e和通用算力型u1实例有什么区别?ECS通用算力型u1实例是企业级独享型云服务器,ECS经济型e实例是共享型云服务器,所以相比较e实例,云服务器u1更好一些。e实例为共享型云服务器,共享型实例采用非绑定CPU调度模式,不同ECS实例vCPU会争抢物理CPU资源,并导致高负载时计算性能波动不稳定。阿里云百科来详细对比阿里云服务器通用算力型u1和经济型e实例区别对比
922 0