消息映射宏ON_CONTROL_RANGE || CButtonST

消息映射宏之-ON_CONTROL_RANGE
 

单选钮和复选框都可以响应BN_CLICKED消息,如果一组中有多个单选钮,分别创建消息处理函数就比较麻烦了,利用MFC的消息映射宏ON_CONTROL_RANGE可以避免这种麻烦,该映射宏把多个ID连续的控件发出的消息映射到同一个处理函数上,这样,我们只要编写一个消息处理函数就可以对一组单选钮的BN_CLICKED消息作出响应,ClassWizard不支持该宏,必须手工创建。
ON_CONTROL_RANGE消息映射宏的第一个参数是控件消息码,第二和第三个参数分别指明了一组连续的控件ID中的头一个和最后一个ID,最后一个参数是消息处理函数名。注意,起始、 终止ID号必须是连续的,如果不能确定该组控件的ID是否是连续,请用View->Resource Symbols…命令检查控件的ID值,如果发现两个ID是不连续的,读者可以改变对ID的定义值使之连续,但要注意改动后的值不要与别的ID值发生冲突。
  在BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP之间 //}}AFX_MSG_MAP之后加入

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()
最后,在对话框类所在CPP文件的最后插入消息处理函数,如下所示:CRadioAndCheckButtonDialog:: OnCHKClicked,

 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

VC ON_CONTROL_RANGE多个控件响应一个方法

  • 浏览: 720
  • 更新: 2011-04-09 17:04
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值