先为对话框加上2个radio button,分别是Radio1和Radio2。

问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?

关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,
第一种:

((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);//不选上
((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck();//返回1表示选上,0表示没选上

第二种:
关联一个congtrol型变量(子类化),好ctrl+W(即打开classwizard),点开 Member Variables,咦?怎么没有IDC_RADIO1这个ID?原来是没有分组。因为radio button通常都是成组使用的,在一组里面是互斥的。取消,回到对话框资源面板,右键Radio1查看属性把Group选上,那么,Radio1和 Radio2就是一组了(怎么知道他们是一组的?后面说)。此时,就可以为Radio1增加一congtrol型变量m_ctrlRadio1了。如下:
m_ctrlRadio1.SetCheck(TRUE);
同样可以使用GetCheck()获取状态。
第三种:
关联一个int型变量(同样需要先分组)m_nRadio1,打开对话框构造函数,你会发现有:
m_nRadio1 = -1;m_nRadio1别赋值-1表示哪个都没有选上。如果你把-1改成0,就会发现Radio1默认被选上了,依此类推,m_nRadio1的值为1 就是第二个被选上了(这里同样有问题,哪个是第一个?哪个是第二个?)。获取状态很简单,UpdateData(TRUE)后判断m_nRadio1的值 即可。

问题2:如何使用多组?

多组和一组是一样的使用,只要搞清楚哪个是哪一组的就行了。再为对话框添加Radio3和 Radio4。很简单,先为这些Radio Button排个顺序(这个必须要做,比如你的一组控件有Radio1,Radio2,Radio3,就把它们的TAB顺序分别设为1,2,3,并将 Radio1的Group属性设为True,这样,当选中Radio1的时候和它关联的变量就是0,当选中Radio2的时候和它关联的变量就是1,依此 类推),就是排列他们的TAB ORDER。在对话框资源面板上Ctrl+D,然后按你自己的理想顺序用鼠标逐个点击就可以了。不妨假设Radio1、Radio2、Radio3、 Radio4分别是1、2、3、4。Radio1和Radio3都选上Group属性,那么,1、2是一组,3、4是另外一组,因为分组的原则是在选上 Group属性的这一个开始直到碰到下一个选上Group属性的。你不妨再Ctrl+D,令Radio1、Radio2、Radio3、Radio4分别 是1、3、2、4,那么Radio1和Radio3是一组,如果m_nRadio1=1,此时是Radio3被选上而不是Radio2被选上。分好了组就 分别使用它们吧。

嗯,也许你还要为它们添加鼠标单击事件,非常简单。

单选按钮控件(Radio Button)的使用

关键词:单选按钮控件 使用方法

一、对单选按钮进行分组:
每组的第一个单选按钮设置属性:Group,Tabstop,Auto;其余按钮设置属性Tabstop,Auto。如:
Radio1、Radio2、Radio3为一组,Radio4、Radio5为一组

设定Radio1属性:Group,Tabstop,Auto
设定Radio2属性:Tabstop,Auto
设定Radio3属性:Tabstop,Auto

设定Radio4属性:Group,Tabstop,Auto
设定Radio5属性:Tabstop,Auto

二、用ClassWizard为单选控件定义变量,每组只能定义一个。如:m_Radio1、m_Radio4。

三、用ClassWizard生成各单选按钮的单击消息函数,并加入内容:

void CWEditView::OnRadio1()
{m_Radio1 = 0;    //第一个单选按钮被选中
}void CWEditView::OnRadio2()
{m_Radio1 = 1;    //第二个单选按钮被选中
}void CWEditView::OnRadio3()
{m_Radio1 = 2;    //第三个单选按钮被选中
}void CWEditView::OnRadio4()
{m_Radio4 = 0;    //第四个单选按钮被选中
}void CWEditView::OnRadio5()
{m_Radio4 = 1;    //第五个单选按钮被选中
}

四、设置默认按钮:
在定义控件变量时,ClassWizard在构造函数中会把变量初值设为-1,只需把它改为其它值即可。
如:

//{{AFX_DATA_INIT(CUnitBlockTypeFlankPublicAdd)
m_Radio1 = 0;    //初始时第一个单选按钮被选中
m_Radio4 = 0;    //初始时第四个单选按钮被选中
//}}AFX_DATA_INIT

MFC关于Radio按钮分组与选择的操作相关推荐

  1. [vc]如何对radio按钮分组

    如何使用多组? 多组和一组是一样的使用,只要搞清楚哪个是哪一组的就行了.再为对话框添加Radio3和Radio4.很简单,先为这些RadioButton排个顺序,就是排列他们的TABORDER.在对话 ...

  2. 实现MFC中Radio Button组绑定同一变量控制

    实现MFC中Radio Button组绑定同一变量控制 总共有八个控件,如果要一个一个绑定变量,并且写响应函数,将要花费很多时间精力,所以想用的方法就是都绑上同一个变量,这样当我点击某一个控件的时候, ...

  3. 【MFC】工具栏按钮单选效果

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 Visual C++在 ...

  4. 【MFC】工具栏按钮多选效果本

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 多选效果就是指工具栏按 ...

  5. MFC中改变按钮颜色的方法

    本文参考学习 https://blog.csdn.net/zxccaoya/article/details/54142523 而来. 这里介绍mfc 中改变按钮颜色的最简单方法. 使用CMFCButt ...

  6. 【MFC】工具栏按钮追加显示文本

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 工具栏中的按钮并不一定 ...

  7. 【MFC】固定按钮工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 通过MFC向导创建的应 ...

  8. 【MFC】工具栏按钮的热点效果

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 工具栏按钮的热点效果可 ...

  9. [css] 如何自定义radio按钮的样式

    [css] 如何自定义radio按钮的样式 选择器 input[type="radio"]现在几乎不用原生的radio,一是原生样式改成设计稿的样子太浪费时间,二是不同浏览器对于原 ...

最新文章

  1. 干货!一文解决产品经理对UML的全部疑问
  2. virtualbox4 剪贴板(共享粘贴板)失效之原因
  3. Google Chrome —— 离线安装/安装包下载解决方案
  4. next数组_【阿里面试热身题】数组去重(动画展示)
  5. VSS源代码管理应该怎么样对bin目录及项目中用到的第三方组件进行管理?
  6. 实现 VC 最小化到 托盘
  7. 前端学习(1903)vue之电商管理系统电商系统之调用api添加用户
  8. Java快速入门学习笔记9 | Java语言中的方法
  9. vb中findwindow的疑惑
  10. 【STM32开发环境搭建】 - st-link驱动安装和串口驱动安装
  11. 本地搭建SVN局域网服务器
  12. 一步一步教你写股票走势图——分时图一(概述)
  13. 桌面文件不见了怎么办?3个详细教程
  14. 软件测试自学还是培训?
  15. HTMLParser(一个比较流行的html代码解析、处理开源项目)学习,总结
  16. 搜题接口API使用 授权使用
  17. 05_grep-搜索
  18. 幻灯片相册制作PhotoStage
  19. vue 运行项目浏览器页面显示“该网页无法正常运作”
  20. logoff user in window 2008

热门文章

  1. 【树莓派】【转载】基于树莓派,制作家庭媒体中心+下载机
  2. C++实践参考——时间类
  3. sc config 命令(详细)
  4. 中国的人生路上是紧跟领导就会有回报
  5. hadoop配置文件聚集功能(设置日志可以查看)
  6. 新手探索NLP(十五)——终章
  7. 雷林鹏分享:PHP 5 Directory 函数
  8. 2.34模型--简单字符串查找(占位).c
  9. 【react开发】使用swiper插件,loop:true时产生的问题解决方案
  10. SublimeLinter插件对PHP语法检测不起作用的解决办法