MFC单选按钮[转]

先为对话框加上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

转自:http://wenku.baidu.com/view/d03e99c2bb4cf7ec4afed016.html

时间: 2024-11-03 21:56:34

MFC单选按钮[转]的相关文章

MFC单选按钮的使用

将一组单选按钮添加到对话框 选择"工具箱"窗口中的单选按钮 (RadioButton) 控件,并在对话框中单击希望放置该控件的位置. 重复步骤 1 以添加所需的任意多个单选按钮.确保组中单选按钮的 Tab 键顺序是连续的(有关更多信息,请参见更改控件的 Tab 键顺序). 在"属性"窗口中,将 Tab 键顺序中的第一个单选按钮的 Group 属性设置为 True.例如 Radio1.Radio2.Radio3为一组,Radio4.Radio5为一组 设定Radio1

MFC控件-单选按钮(Radio Button)

单选按钮通常成组使用,每个单选按钮都代表一组相互排斥的选项中的一个.当为第一个单选按钮设置了Group属性后,随后的几个单选按钮就和这个按钮属于同一组了,直到遇到下一个(按照TAB顺序)具有Group属性的控件为止. 1.设置RadioA的Group属性,关联int型变量m_RadioA. 此时6个单选按钮属于同组.依次点击RadioA至RadioF,m_RadioA的值由0变为5. 2.设置RadioE的Group属性,关联int型变量m_RadioE. 此时RadioA至RadioD同组,R

MFC - windows消息大全

1 Windows窗口消息大全,全不全自己看 2 3 ////////////////////////////////////////////////////////////////////////// 4 #include "AFXPRIV.H"//消息值的定义来源 5 #include "Dde.h"//DDE消息值的定义来源 6 #include "CPL.H"//控制面板消息值的定义来源 7 #include "WFEXT.H&

MFC DAY10 11 12

一 MFC对话框 1 DoModal函数的执行过程 1.1 查找和加载对话框资源 1.2 将父窗口设置为不可用状态 1.3 创建和显示对话框 1.4 进入对话框的消息循环 1.5 点击OK或者Cancel或者关闭按钮,隐藏对话框窗口 1.6 将父窗口设置为可用的和活动的 1.7 销毁对话框窗口 1.8 释放对话框资源 1.9 返回执行结果(IDOK/IDCANCEL) 二 对话框数据交换技术(DDX) 引入对话框数据交换技术的目的方便的操作控件.将对话框类的 成员变量与对话框的控件绑定,通过操作

(转载)VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

因为私人问题,鸡啄米暂停更新了几天,首先向关注鸡啄米动态的朋友说一声抱歉. 言归正传,鸡啄米上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box)等.命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图.单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有

(转载)VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件开发中如何使用. 因为Button控件在前面的例子中涉及到了,比较简单,本文就不作深入分析了,而是重点讲解单选按钮Radio Button.复选框Check Box的使用. 按钮控件实例的功能 首先介绍此实例实现的功能.此实例用来根据网站类型选择网站,并将选择的网站的名称显示到编辑框中.网站类型有"

单选按钮 区分分组问题

在mfc中,若想对 单选 按钮进行分组,则每一组用一个Group Box来进行区分,然后将每组中的第一个(正确的说法是每组中的索引最小的--Ctrl+D的值最小为第一个按钮)单选按钮 Group 属性设为True.

MFC 时钟 计算器 日期天数计算

Windows大作业报告 课程名称:windows程序设计 所属学院:计算机学院 所属班级:软件113班 原 创   :刘东彦 指导老师:陆筱霞 完成日期:2012年12月3日 Windows大作业报告 目录 目录?1 一.作者信息?5 二.准备工作?5 1.建立工程?5 2.准备图片?6 3. 添加位图?7 三.设计钟表和电子钟?9 1.创建对话框CMyDialog1?9 2. 设计CMyDialog1?9 3. 关联变量?12 4.添加成员变量?14 4. 添加静态成员变量?15 5. 初始

MFC窗口风格 WS_style/WS_EX_style(超详细)

窗口风格(Window style) WS_BORDER   有边框窗口 WS_CAPTION   必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用.指示窗口包含标题要部分. WS_CHILD   说明窗口为子窗口,不能应用于弹出式窗口风格(WS_POPUP). WS_CHILDWINDOW   同WS_CHILD. WS_CLIPCHILDREN   绘制父窗口时,不绘制子窗口的裁剪区域.使用在建立父窗口时. WS_CLIPSIBLINGS 剪裁相关的子窗口,这意味