将两个radio button添加到对话框中。 分别是Radio1和Radio2。
问题1 :如何默认选择Radio2或Radio2? 你怎么知道哪个被选中了?
重要的是,“默认值”只要放在OnInitDialog ()中就可以了。 有三种方法可供选择
第一个:
(CButton * ) getdlgitem(IDC_radio1)-setcheck ) true; //入选
(CButton * ) getdlgitem(IDC_radio1)-setcheck ) false; //不选
(CButton * ) getdlgitem(IDC_radio1)-GetCheck ); 返回1时退房,返回0时退房
第二个:
关联一个控制控制变量,打开ctrl W (即classwizard ),打开成员变量,会发生什么? 为什么没有IDC_RADIO1这个ID? 没有分组。 因为radio button通常用于组中,并且在组中是互斥的。 取消,返回对话框资源面板,右键单击Radio1以显示其属性,然后选择Group。 然后,Radio1和Radio2变成同一个组(你怎么知道他们是同一个组? )。 后面说)。 在这种情况下,可以将congtrol类型变量m_ctrlRadio1添加到Radio1中。 如下所示。
m_ctrlradio1.setcheck(true;
同样,可以使用GetCheck ()获取状态。
第三个:
关联int类型变量(同样必须先分组) m_nRadio1并打开对话框构造函数时,可以看到以下内容:
m_nRadio1=-1; m_nRadio1另赋值-1表示没有选择任何一个。 如果将-1更改为0,则可以看到默认情况下选择了Radio1。 同样,如果m_nRadio1的值为1,则选择第二个(哪个是第二个? 请参阅。 获取状态很简单,只要在更新数据(true )后判断m_nRadio1的值即可。
问题2 :如何使用多个组?
多个组和一个组是同样使用的。 我只要弄清楚哪个是哪个小组的就行了。 在对话框中添加Radio3和Radio4。 很简单。 首先,排列这些Radio Button的顺序。 (这个必须做。 例如,如果您的控件组中有Radio1、Radio2和Radio3,请将这些选项卡的顺序分别设置为1、2和3,并将Radio1的组属性设置为True。 这样,只要在被选中Radio1时及其对话框资源面板中进行Ctrl D,然后按照自己理想的顺序用鼠标一次点击即可。 假设Radio1、Radio2、Radio3和Radio4分别为1、2、3和4。 Radio1和Radio3都选择了组属性。 那么,1、2是组,3、4是另一组。 因为分组原则是从选择组属性的开头到选择组属性的结尾。 再使用Ctrl D,Radio1、Radio2、Radio3、Radio4分别为1、3、2、4,则Radio1和Radio3为1组,m_nRadio1=1时,不是Radio2,而是Radio2
嗯,你可能需要为它们添加鼠标点击的活动。 很简单。
使用单选按钮控制
关键词:单选按钮控件用法
一、单选按钮分组:
各组的第一个单选按钮是组、Tabstop、Auto; 剩下的按钮设置属性Tabstop、Auto。 例如:
Radio1、Radio2、Radio3为一组,Radio4、Radio5为一组
Radio1属性:设置组、Tabstop、Auto
Radio2属性:设置Tabstop,Auto
Radio3属性:设置Tabstop,Auto
Radio4属性:设置组、Tabstop、Auto
Radio5属性:设置Tabstop,Auto
二、用ClassWizard定义电台控制变量,每组只能定义一个。 例如,m_Radio1、m_Radio4。
三、在ClassWizard中生成每个单选按钮的点击消息函数,并添加内容:
voidcweditview :3360 on radio1(
{
m_Radio1=0; //选择第一个单选按钮
}
voidcweditview :3360 on radio2(
{
m_Radio1=1;//选择第二个单选按钮
}
voidcweditview :3360 on radio3(
{
m_Radio1=2;//选择第三个单选按钮
}
voidcweditview :3360 on radio4(
{
m_Radio4=0;//选择第四个单选按钮
}
voidcweditview :3360 on radio5(
{
m_Radio4=1;//选择第五个单选按钮
}
四.设置默认按钮:
定义控件变量时,ClassWizard在构造函数中将变量的初始值设置为-1。 只需将其更改为其他值。
例如:
//{ { afx _ data _ init (cunitblocktypeflankpublicadd }
m_Radio1=0; //初始时选择第一个单选按钮
m_Radio4=0; //初始时选择了第4个单选按钮
//}}AFX_DATA_INIT