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