多个按钮共用一个消息响应函数
在特殊情况下,需要多个按钮共用一个消息处理.如工具栏上的按钮,行为都类似.可以考虑用同一个消息响应函数,来减少代码的冗余.
一、在消息映射中添加关联的消息响应关系
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 ;
}
} |
本文转自Chinayu201451CTO博客,原文链接:http://blog.51cto.com/9233403/1973935 ,如需转载请自行联系原作者