MFC基本控件2-单选按钮的使用

简介: MFC基本控件2-单选按钮的使用

接下来是第二个MFC控件-单选按钮的使用方法, 同样分为基本使用和衍生的使用。

基本使用

        首先我们准备六个单选按钮(一定要记住顺序)和一个按钮, 修改他们的ID做到见名知意(这里为了直观, 我就不修改了),接下来我们实现选中一个Radio按Button1就弹出一个提示消息框的功能。

       双击Button1添加函数,代码实现如下:

void Cclass05Dlg::OnBnClickedButton1()
{
  switch (GetCheckedRadioButton(IDC_RADIO1, //起始单选ID
                               IDC_RADIO6))//最后一个单选ID
  {
  case IDC_RADIO1:
    MessageBox(L"1Down", L"提示", 0);
    break;
  case IDC_RADIO2:
    MessageBox(L"2Down", L"提示", 0);
    break;
  case IDC_RADIO3:
    MessageBox(L"3Down", L"提示", 0);
    break;
  case IDC_RADIO4:
    MessageBox(L"4Down", L"提示", 0);
    break;
  case IDC_RADIO5:
    MessageBox(L"5Down", L"提示", 0);
    break;
  case IDC_RADIO6:
    MessageBox(L"6Down", L"提示", 0);
    break;
  }
  // TODO: 在此添加控件通知处理程序代码
}

实现效果如下 :

分组使用

       大家可以发现, 上面六个单选都是同一组,那怎么实现六个分组使用呢。这里注意单纯在GetCheckedRadioButton函数中修改参量是不行的, 正确的做法如下:

       这里假设我们想将前三个分为 一组, 后三个分为一组

       我们将第二租第一个Radio的族的值修改问True,就可以实现分组功能, 效果如下:

默认选择

       大家肯定在填写问卷或者资料的时候, 看到单选 已经默认选择好, 那我们 应该怎么设置默认值呢, 这里提供两种方法:

       不难想到,默认值就是窗口创建就已经设置好的的, 所以肯定是在窗口初始化函数中作文章。代码如下:

BOOL Cclass05Dlg::OnInitDialog()
{
  CDialogEx::OnInitDialog();
 
  // 将“关于...”菜单项添加到系统菜单中。
 
  // IDM_ABOUTBOX 必须在系统命令范围内。
  ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  ASSERT(IDM_ABOUTBOX < 0xF000);
 
  CMenu* pSysMenu = GetSystemMenu(FALSE);
  if (pSysMenu != nullptr)
  {
    BOOL bNameValid;
    CString strAboutMenu;
    bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
    ASSERT(bNameValid);
    if (!strAboutMenu.IsEmpty())
    {
      pSysMenu->AppendMenu(MF_SEPARATOR);
      pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
  }
 
  // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
  //  执行此操作
  SetIcon(m_hIcon, TRUE);     // 设置大图标
  SetIcon(m_hIcon, FALSE);    // 设置小图标
 
  // TODO: 在此添加额外的初始化代码
  /*
  方法一:
  使用GetDlgItem函数获取窗口上的控件, 强转为CButton*类型再调用SetCheck函数设置为按下
  */
  ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(1);
 
  /*
  方法二:
  将控件实例化为对象, 再调用SetCheck函数设置为按下
  */
  buton4.SetCheck(1);
 
  return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

效果如下:

总结:

以上就是单选框的使用, 希望大家多多指正, 接下来还会更新其他控件的使用, 欢迎交流

相关文章
MFC基本控件2-单选按钮的使用
接下来是第二个MFC控件-单选按钮的使用方法, 同样分为基本使用和衍生的使用。
|
C#
WPF中实现多选ComboBox控件
原文:WPF中实现多选ComboBox控件 在WPF中实现带CheckBox的ComboBox控件,让ComboBox控件可以支持多选。 将ComboBox的ItemsSource属性Binding到一个Book的集合, public class Book { ...
3582 0
MFC基本控件3-Button的风格
MFC基本控件3-Button的风格
|
6月前
|
C++
[Qt5&控件] 复选框QCheckBox的使用
[Qt5&控件] 复选框QCheckBox的使用
183 0
16 MFC - 组合框(下拉框) CComboBox
16 MFC - 组合框(下拉框) CComboBox
45 0
|
C++
基于MFC实现选项卡控件练习
基于MFC实现选项卡控件练习
72 0
基于MFC实现选项卡控件练习
Qt之自定义控件(开关按钮)
简述 接触过IOS系统的童鞋们应该对开关按钮很熟悉,在设置里面经常遇到,切换时候的滑动效果比较帅气。 通常说的开关按钮,有两个状态:on、off。 下面,我们利用自定义控件来实现一个开关按钮。 简述 原理 源码 示例 效果 源码 更多参考 原理 重写鼠标按下事件(mousePressEvent)、释放事件(mouseReleaseEve
3062 0
MFC单选按钮
先为对话框加上2个radio button,分别是Radio1和Radio2。 问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了? 关键是选上,“默认”只要放在OnInitDialog()即可。
1029 0
|
索引
MFC中组合框CComboBox的使用
假如添加三行数据,其中当选择前两行时,提示自定义提示框信息,选择第三行时,提示当前字符串的内容,实现如下: void Cuse_demo_dllDlg::OnCbnSelchangeCombo1(){ int pos=m_combo.
1108 0