在特殊情况下,需要多个按钮共用一个消息处理。如工具栏上的按钮,行为都类似。可以考虑用同一个消息响应函数,来减少代码的冗余。
一,在消息映射中添加关联的消息响应关系
BEGIN_MESSAGE_MAP (CscaleweightDlg, CDialog) ,,,… ,,,ON_CONTROL_RANGE (BN_CLICKED,, 9000,, 9006,,, CscaleweightDlg:: OnClickedToolBar) ,,,… END_MESSAGE_MAP ()
一共有7个按钮,ID分别为9000 ~ 90006
二,在。h文件中添加响应函数
afx_msg void OnClickedToolBar (UINT id),
三,在cpp中编写响应的函数体
void CscaleweightDlg: OnClickedToolBar (UINT id) {//工具栏事件处理 NormalToolBar (ID);//其他按钮恢复正常颜色 switch (ID) { ,,,case 9000: ,,,,,,,,,,,,AfxMessageBox (_T (“0”)); 打破; case 9001: AfxMessageBox (_T (" 1 ")); 打破; case 9002: AfxMessageBox (_T (“2”)); 打破; case 9003: AfxMessageBox (_T (3)); 打破; case 9004: AfxMessageBox (_T (4)); 打破; case 9005: AfxMessageBox (_T (“5”)); 打破; case 9006: AfxMessageBox (_T (“6”)); 打破; } ,,,, }
根据不同的ID,确定相应的按钮动作。