MFC Radio Button笔记

毛镜
2023-12-01

RadioButton分组 :将本组第一个风格加Group;

多分组情况下:

各RadioButton需要设置Tab顺序。某一个RadioButton设置Group属性后,其Tab次序后的与其一个组。遇到另一个设置Group属性的RadioButton,则开始新的组。设置Tab顺序快捷键Ctrl+D(菜单Format->Tab Order)。

 

 

 

 

 int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);

参数为起始RadioButton和结束RadioButton的ID值;并且必须属于同一个Group,返回的是当前选中的RadioButton的ID值;

 

将CButton与RadioButton绑定:

CButton mRadioButton;

mRadioButton = (CButton *)this->GetDlgItem(IDC_RADIO1);

 

mRadioButton->GetCheck()返回1则此RadioButton被选中,返回0没选中。

 

 

 

一个Radio Button设置Group后,在对话框资源上右键Radio Button,选中Control variable选项

可以为整个Group添加CButton对象,其他Group成员不能再添加CButton对象

不选中Control variable选项时,可以为Group属性Buttton以及其他Group成员添加int,float,char等数据类型变量

非Group属性Button可以为选择要加入的Group:Control ID列表中选择已设置Group属性的Button

 

 

1选中Control variable:   Category 有Control、 value两种情况

   1.1value

只能加BOOL型

如:添加m_bRaido6;

头文件自动添加BOOL m_bRaido6;

源文件自动添加

, m_bRaido6(FALSE)(构造函数处)

DDX_Radio(pDX, IDC_RADIO6, m_bRaido6);(DoDataExchange中)

  1.2control

只能加CButton型 

如:添加m_Radio,

头文件自动添加CButton m_Radio;

源文件自动添加DDX_Control(pDX, IDC_RADIO1, m_Radio);(DoDataExchange中)

 

 

 

2不选中Control variable:

添加通常数据类型(此时添加的变量与Radio Button无关?)

 

 

 

 

例:通过一个变量获取当前选中的是哪个radio button:

添加三个radio button 分别是 Radio6,Radio7,Radio8

Tab order 分别为 6,7,8

设置Radio为Group属性

右键Radio6添加变量:选中Control variable,Category选value,名字填写 m_bRadio6

 

在三个Radio Button的单机响应函数中添加

printf("&&&&&&&m_bRadio6=%d/n",m_bRaido6);

UpdateData();

printf("&&&&&&&m_bRadio6=%d/n",m_bRaido6);

 

:::第一句是输出点击Radio Button按钮前 m_bRadio6的值

:::第二句将当前Radio Button按钮对应的状态值赋值到m_bRadio6

:::第三句,再次输出m_bRadio6的值

 

点击Radio6 输出:

&&&&&&&m_bRadio6=0//添加m_bRadio6变量后VS2005默认赋值FALSE

&&&&&&&m_bRadio6=0//点击后m_bRadio6=0,(选中当前Group第一个)

点击Radio7输出:

&&&&&&&m_bRadio6=0//上次是第一个

&&&&&&&m_bRadio6=1//点击后选中第二个

点击Radio8输出:

&&&&&&&m_bRadio6=1

&&&&&&&m_bRadio6=2//点击后选中第三个

 

(今天才注意到是:  typedef int                 BOOL;  开始还郁闷,怎么相关变量只能设置为BOOL型)

 

 

 

 

------------------------------------------<<----百度--------------------

  UpdateData(TRUE)  ——刷新控件的值到对应的变量。(外部输入值交给内部变量)  即:控件的值—>变量。  UpdateData(FALSE)  —— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)  即:变量值—>控件显示。

---------------------------------------------------百度---------->>------

 类似资料: