Visual Studio中Radio Button组绑定变量方法(DDX_Radio方法)

需求描述:Visual Studio 创建的界面程序中又许多 Radio Button,希望这些所有的Radio Button统一绑定到一个变量上,这个变量一旦改变,Radio Button的选中状态会相应的改变。

实现方法:在DoDataExchange函数中: DDX_Radio(pDX, IDC_RADIO1, m_nRadio1);函数

具体方法(以3个Radio Button为例):

1.三个Radio Button,ID分别为:IDC_RADIO1, IDC_RADIO2, IDC_RADIO3;(三个ID值需要连续递增, 三个Tab值也是连续递增)

2.设置Radio Button的Tab键顺序,具体方法:图形设计界面中,工具栏“格式”—>“Tab键顺序”选项选中,然后按照想要设定的次序,依次点击对话框上面的RadioButton按钮。

3.设置IDC_RADIO1的Group属性为true,其他Radio Button的Group属性都设置为false

4.h文件中声明 变量和 重新声明DoDataExchange函数:

int m_medium;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
5.cpp文件中,重新实现DoDataExchange函数,连接变量:
void CMediumFrom::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Radio(pDX, IDC_RADIO1, m_medium);
}


效果:

1.m_medium变量值改变后,(执行UpdateData函数后)radio button组的选中状态改变。

m_medium=1;
UpdateData(false);

2.radio button组的选中状态改变后,(执行UpdateData函数后),m_medium变量值自动改变。

UpdateData(TRUE);
if(m_medium!=-1)
{}

---------------------
作者:少安的砖厂
来源:CSDN
原文:https://blog.csdn.net/qq_28093585/article/details/78608270
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/2018shawn/p/10699819.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC Radio Button 是一组互斥的按钮,通常用于提供多个选项供用户选择其一个。为了将这些按钮分组并值,可以使用 MFC 的 Group Box 控件。将多个 Radio Button 放置在同一个 Group Box ,然后为每个 Radio Button 设置不同的 ID 值和相应的文本标签。 在 MFC ,可以使用 DDX_Radio 函数将 Radio Button 与一个整数变量在一起。这个整数变量表示用户选择的选项的索引,从0开始计数。DDX_Radio 函数的第一个参数是对话框类的指针,第二个参数是 Radio Button 的组 ID,第三个参数是变量的指针,它将被设置为用户选择的选项的索引。 例如,如果您有三个 Radio Button,它们的组 ID 分别为 IDC_RADIO1、IDC_RADIO2 和 IDC_RADIO3,您可以使用以下代码将它们与一个整数变量在一起: ``` int m_nSelection; // 用于存储用户选择的选项的索引 // 在 DoDataExchange 函数添加以下代码 void CMyDialog::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Radio(pDX, IDC_RADIO1, m_nSelection); DDX_Radio(pDX, IDC_RADIO2, m_nSelection); DDX_Radio(pDX, IDC_RADIO3, m_nSelection); } ``` 然后,您可以在程序使用 m_nSelection 变量来获取用户选择的选项的索引,并根据需要执行相应的操作。例如,以下代码将显示用户选择的选项的文本标签: ``` CString strSelection; switch (m_nSelection) { case 0: strSelection = _T("Option 1"); break; case 1: strSelection = _T("Option 2"); break; case 2: strSelection = _T("Option 3"); break; } AfxMessageBox(strSelection); ``` 希望能帮助到您!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值