消息映射宏之-ON_CONTROL_RANGE |
单选钮和复选框都可以响应BN_CLICKED消息,如果一组中有多个单选钮,分别创建消息处理函数就比较麻烦了,利用MFC的消息映射宏ON_CONTROL_RANGE可以避免这种麻烦,该映射宏把多个ID连续的控件发出的消息映射到同一个处理函数上,这样,我们只要编写一个消息处理函数就可以对一组单选钮的BN_CLICKED消息作出响应,ClassWizard不支持该宏,必须手工创建。 ON_CONTROL_RANGE(BN_CLICKED,IDC_CHK1,IDC_CHK2,OnCHKClicked)然后在对话框类的头文件的AFX_MSG 块中声明消息处理函数, …… //{ {AFX_MSG(CMyView) …… //}}AFX_MSG afx_msg void OnCHKClicked (UINT nCmdID); DECLARE_MESSAGE_MAP() void CRadioAndCheckButtonDialog:: OnCHKClicked (UINT nCmdID) { …… switch(nID) { case IDC_CHK1: AfxMessageBox("IDC_CHK1"); break; case IDC_CHK2: AfxMessageBox("IDC_CHK2"); break; …… }
http://jingyan.baidu.com/article/656db918b3f344e381249c19.html
|