转载:vc中的单选框

原文地址:VC中的单选框 作者:远走高飞
 单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。
   设置控件的Tab Order
  单击Layout菜单下的Tab Order命令,设置控件的TAB键顺序(Tab Order),保证单选钮的Tab Order连续。
   以Tab Order为序,从Group属性为真的控件开始(包括该控件),到下一个Group属性为真的控件结束(不包括该控件),所有的这些控件将组成一个组。对于单选钮,同一组内同时只能有一个处于被选中状态。对于由资源编辑器生成的单选按钮控件,在默认情况由Windows自动处理同组控件之间的互斥关系。
    具体使用单选钮和复选框

  1、调用 CButton的成员函数SetCheck设置单选钮和复选框的选中状态。该成员函数带有一个类型为整形的参数,该参数为0表示清除选中按钮的选中状态,参数为1表示设置选中按钮的选中状态。参数为2表示把三态复选框设为不确定状态。
  注意,如果我们在程序中调用SetCheck设置同一组中某一单选钮为选中状态,并不意味着同时清除同一组中其它单选钮的选中状态。否则,将导致同一组中的两个按钮同时处于选中状态。这是应该避免的。因此,如果我们通过代码改变了单选钮的选中状态,一定要记得同时清除同组的其它单选钮的选中状态。

 2、调用 CButton的成员函数GetCheck返回单选钮的选中状态。该函数的函数原型
是    int GetCheck( ) const;
  返回值可以是0、1、2,分别代表按钮处于未选中状态、选中状态或中间状态(对三态复选框而言)。

 3、调用类CWnd的成员函数GetCheckedRadioButton返回同一组单选钮中哪一个被选中。该成员函数原型如下:
int GetCheckedRadioButton(int nIDFirstButton,int nIDLastButton);
  第一个参数nIDFirstButton是同一组中的第一个单选钮控件的ID,nIDLastButton是同一组中最后一个单选钮控件的ID。成员函数GetCheckedRadioButton返回指定组中所选中的单选钮的ID,如果没有按扭被选中,则返回0。

注意,若干个单选钮是否属于同一组是以其Tab顺序来排定的,而GetCheckedRadioButton函数是以ID顺序来检查按钮的选定状态的。因此,如果传递给函数GetCheckedRadioButton的第一个参数的值大于第二个参数的值时,其返回值总是为0,而事实上由这两个参数指定的单选钮的Tab顺序可能恰恰相反。因此,一般情况下我们应该尽量保证同一组单选钮的资源ID是连续递增的。通常这些资源ID是在头文件Resource.h 中定义的。如果你同一组的单选钮不是一次创建的,那么它们的资源ID可能不是连续递增的,甚至可能是相反的。我们可以手动的修改资源头文件中的宏定义,以保证GetCheckedRadioButton函数得到正确的结果。

4、使用ClassWizard为单选钮或复选框添加变量,来使用单选钮或复选框
  一般,一组单选按钮的第一个属性选中Group,注意,只有选中Group属性的单选钮的ID 才能在ClassWizard中添加变量。
  在对话框类给一组单选钮加入一个成员变量,单选钮(组中的第一个按钮)的数据变量类型是int,0表示选择了组中的第一个单选钮,1表示选择了第二个,-1表示没有一个被选中。例如:给单选钮IDC_SEX1添加int型变量m_nSex,并在执行文件中加入如下代码:

……
UpdateData(TRUE);
if(m_nSex==0) //选中‘男’
;
else if(m_nSex==1) //选中‘女’
;
else
;
转载这篇文章的人,也就是我,建议使用最后一种,添加变量的方法,更直观一些。
……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值