消息映射宏ON_CONTROL_RANGE || CButtonST

CButtonST是一个用于Windows界面的类,能创建漂亮的按钮。本文介绍了CButtonST的成员函数,包括DrawBorder、DrawFlatFocus、DrawTransparent等,用于控制按钮的显示样式,如边框、焦点和透明效果。此外,还提到了SetBitmaps、SetIcon、SetMenu等功能,用于设置按钮上的图片、图标和关联菜单。通过这些函数,开发者可以实现自定义的按钮风格和交互效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

消息映射宏之-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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值