多個按鈕共用一個消息響應函數
阿新 • • 發佈:2017-10-19
mfc c++
在特殊情況下,需要多個按鈕共用一個消息處理.如工具欄上的按鈕,行為都類似.可以考慮用同一個消息響應函數,來減少代碼的冗余.
一、在消息映射中添加關聯的消息響應關系
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")); 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,確定相應的按鈕動作。
多個按鈕共用一個消息響應函數