MFC之单选框,复选框的使用21

本文介绍了如何在MFC环境中使用单选框和复选框进行用户交互。通过创建对话框,添加单选框和复选框控件,设置属性,并编写代码来检测用户的选择,实现了根据用户选择显示对应信息的功能。单选框用于性别选择,复选框用于课程选择,点击按钮后弹出消息框展示用户的选择。
摘要由CSDN通过智能技术生成

1 单选框的使用

1)首先了解部分内容。
在这里插入图片描述

2)创建新的项目,选择基于对话框的MFC标准。

3)首先将对话框原有的内容删除。然后添加一个GroupBox容器。
在这里插入图片描述

4)添加几个单选框进去。
在这里插入图片描述

5)使用Ctrl+D查看GroupBox容器内的单选框是否按照顺序。可以看到是按顺序的,若在同一组容器不是顺序的,可能出错。这里忽略一下按钮,看前四个。

在这里插入图片描述

6)设置属性,使同组内的第一个按钮的Group为true。
在这里插入图片描述

7)添加按钮,用于检测用户选择的单选框。
在这里插入图片描述

8)开始编码。
首先是初始化单选框的默认值。在对话框的初始化函数OnInitDialog处理。

// CdanxuankuangDlg 消息处理程序

BOOL CdanxuankuangDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 将“关于...”菜单项添加到系统菜单中。

	// IDM_ABOUTBOX 必须在系统命令范围内。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		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: 在此添加额外的初始化代码

	//参1:同组单选框的首个ID,参2:同组单选框的最后一个ID。参3:默认勾选的ID.使用Ctrl+D查看即可。
	CheckRadioButton(IDC_RADIO1, IDC_RADIO3, IDC_RADIO1);

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

然后双击按钮去到响应函数,继续编写代码。

void CdanxuankuangDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str;
	if (IsDlgButtonChecked(IDC_RADIO1)) {
		str = TEXT("男");
	}
	if (IsDlgButtonChecked(IDC_RADIO2)) {
		str = TEXT("女");
	}
	if (IsDlgButtonChecked(IDC_RADIO3)) {
		str = TEXT("太监");
	}

	MessageBox(str);
}

9)结果可以看到,选择哪个单选框就显示什么。
在这里插入图片描述

2 复选框的使用

1)同理,先添加复选框CheckBox控件。在这里插入图片描述

2)添加按钮,双击按钮去到响应函数,然后编写代码。

void CdanxuankuangDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	CString str;
	if (IsDlgButtonChecked(IDC_CHECK1)) {
		str += TEXT("语文\r\n");//对话框的换行需要\r\n
	}
	if (IsDlgButtonChecked(IDC_CHECK2)) {
		str += TEXT("数学\r\n");
	}
	if (IsDlgButtonChecked(IDC_CHECK3)) {
		str += TEXT("英语\r\n");
	}
	if (IsDlgButtonChecked(IDC_CHECK4)) {
		str += TEXT("物理\r\n");
	}

	MessageBox(str);
}

当然你也可以通过添加变量的方法将复选框关联,这样就可以通过代码修改想要显示的文本内容。即Check1,Check2这些,这里为了方便不添加了。

结果:
在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值