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

简介:

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

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 ,如需转载请自行联系原作者








相关文章
|
9月前
|
C#
C#利用委托实现命令按钮跨窗体控制
C#利用委托实现命令按钮跨窗体控制
76 0
|
10月前
|
存储 安全 Windows
Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程
Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程
|
安全 JavaScript API
【笔记】用 window.postMessage 进行窗口之间的隐式信息传递
用 window.postMessage 进行窗口之间的隐式信息传递
282 0
|
消息中间件 C++ Windows
模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)
上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记录一下Windows相关的题目。
1046 0
|
C# Windows
WPF获得全局窗体句柄,并响应全局键盘事件
场景 wpf窗体运行后,只能捕获当前Active窗体的按键事件,如果要监听windows全局事件,并对当前窗口事件响应. 第一步:导入Winows API public class Win32 { [DllImport("User32.Dll")] public static extern void SetWindowText(int h, String s); /// /// 如果函数执行成功,返回值不为0。
1920 0
|
C#
C# 跨线程调用控件
原文: C# 跨线程调用控件 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应。  同时我们又需要在工作线程中更新UI界面上的控件, 下面介绍几种常用的方法   阅读目录 线程间操作无效 第一种办...
1474 0
|
C++ Windows C语言
duilib底层机制剖析:窗体类与窗体句柄的关联
转载请说明原出处,谢谢~~         看到群里朋友有人讨论WTL中的thunk技术,让我联想到了duilib的类似技术。这些技术都是为了解决c++封装的窗体类与窗体句柄的关联问题。
1835 0
MFC 对话框中动态创建N级菜单以及响应事件
创建一个基于对话框的工程,工程名为CreateMenu 为该对话框增加一个文件菜单项和测试菜单项,如下图所示   测试菜单项至少要有一个子菜单项 在对话框属性中关联该菜单 在resource.
1238 0
|
Windows
(转) MFC的入口点与消息循环,消息映射
博文分析的很不错,尤其是替换默认窗口过程的这块,本人觉得,所有的这些都可以参阅侯杰的《深入浅出MFC 》。   来自:http://blog.csdn.net/sryan/article/details/7392814    1.
878 0