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

简介:

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

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








相关文章
|
3月前
两个按钮共享一个函数事件
两个按钮共享一个函数事件
18 1
C#利用委托实现命令按钮跨窗体控制
C#利用委托实现命令按钮跨窗体控制
125 0
|
存储 安全 Windows
Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程
Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程
|
安全 JavaScript API
【笔记】用 window.postMessage 进行窗口之间的隐式信息传递
用 window.postMessage 进行窗口之间的隐式信息传递
337 0
|
C# C++
获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄
原文:获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄 有时候在c++调用wpf控件的时候,wpf控件想自己显示窗体,但需要设置owner属性。迂回解决办法是设置wpf的window窗体的父窗体为进程的句柄。
3106 0
|
消息中间件 C++ Windows
模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)
上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记录一下Windows相关的题目。
1098 0
|
C#
C# 跨线程调用控件
原文: C# 跨线程调用控件 在C# 的应用程序开发中, 我们经常要把UI线程和工作线程分开,防止界面停止响应。  同时我们又需要在工作线程中更新UI界面上的控件, 下面介绍几种常用的方法   阅读目录 线程间操作无效 第一种办...
1870 0