栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > C/C++/C#

MFC选择框(笔记)

C/C++/C# 更新时间:发布时间: 百科书网 趣学号
一、单选框

Radio Button

  1. 一组的单选框必须顺序排放(不可有缺项1,2,3...),方便缺省值设置。(在对话框设计界面,通过"Ctrl+D",可以看到顺序,通过点数字也可以进行排序)

  2.  可以用Group控件分割组(上图性别)
  3. 一组单选框的第一个框的属性Group设置为true,代表第一个。
  4. CWnd::CheckRadioButton用于设置缺省项
  5. CWnd::IsDlguttonChecked用于确定该按钮是否按下
  6. 为单选框添加点击事件,则可以作为一般button用。

 设计如下单选框

在CMFCApplication1Dlg::onInitDialog()中,为单选框设置缺省项目。

	//开始选项框的ID,结束选项框的ID,选中的框
	CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO2);

 为提交按钮添加点击事件,同时创建存储文字CString的变量。

void CMFCApplication1Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	if (IsDlgButtonChecked(IDC_RADIO1)) {
		m_str = TEXT("男 ");
	}
	else if (IsDlgButtonChecked(IDC_RADIO2)) {
		m_str = TEXT("女");
	}
	MessageBox(m_str);
}

  二、多选框

Check Box

通过对话框设计添加如下项目

 修改按钮部分

void CMFCApplication1Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	if (IsDlgButtonChecked(IDC_RADIO1)) {
		m_str = TEXT("男rn");
	}
	else if (IsDlgButtonChecked(IDC_RADIO2)) {
		m_str = TEXT("女rn");
	}
	if (IsDlgButtonChecked(IDC_CHECK1)) {
		m_str = m_str + TEXT("游戏rn");
	}
	if (IsDlgButtonChecked(IDC_CHECK3)) {
		m_str = m_str + TEXT("音乐rn");
	}
	if (IsDlgButtonChecked(IDC_CHECK2)) {
		m_str = m_str + TEXT("小说rn");
	}
	if (IsDlgButtonChecked(IDC_CHECK4)) {
		m_str = m_str + TEXT("运动rn");
	}
	MessageBox(m_str);
}

结果:

用变量调整多选框

为一个CheckBox添加成员变量。

其可以在CMFCApplication1Dlg::OnInitDialog设置如下,使得在初始化时,其属性被改动。

	m_check.SetWindowTextW(TEXT("电影"));//设置标签
	m_check.SetCheck(1);//设置是否选中,1选中,0未选中

三、列表框

为窗口添加ListBox、button、EidtControl

为文本编辑框添加一个值变量

 为列表框(listbox)添加控制变量

 为“添加”按钮设置点击事件

void CMFCApplicationDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData();//将编辑框中数据写入变量
	if (m_str.GetLength() == 0) {
		MessageBox(_T("内容不可以为空"));
		return;
	}
	//为列表框添加内容
	m_listBox.AddString(m_str);
	m_str.Empty();
	UpdateData(FALSE);//内容更新至编辑区
}

为“删除”按钮添加点击事件,顺序是从上到下第一个i为0(字典序)

void CMFCApplicationDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	int i = m_listBox.GetCurSel();//获取当前选中的行
	m_listBox.DeleteString(i);// 删除
}

为“列表框添加点击事件,用以更新编辑框

void CMFCApplicationDlg::OnLbnSelchangeList1()
{
	// TODO: 在此添加控件通知处理程序代码
	//获取选中内容,更新到编辑框
	int i = m_listBox.GetCurSel();
	m_listBox.GetText(i, m_str);
	//更新到编辑区
	UpdateData(FALSE);
}

为“确定更新”按钮添加点击事件

注意,”添加“按钮用的是字典排序,但此处修改是直接插入i处,若想字典排序,可以用”添加“按钮的相同操作。

void CMFCApplicationDlg::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData();//更新编辑区内容到m_str
	if (m_str.GetLength() == 0) {
		MessageBox(_T("内容不可以为空"));
		return;
	}
	//获取选中内容
	int i = m_listBox.GetCurSel();
	//删除指定内容
	m_listBox.DeleteString(i);
	//向指定位置插入内容,即向i处元素之前插入,原i处元素后移动
	m_listBox.InsertString(i, m_str);
	//更新到编辑区
	m_str.Empty();
	UpdateData(FALSE);
}
 四、组合框

组合框(comboBox)除了获取内容的函数与列表框不同,其余一致。

如图,为对话框添加一个组合框。

其属性data即为选项, 以"';"分隔,字母序。为其设置几个值

其属性Type中:

  • simple:则变为了输入框
  • Dropdown:则变为了可编辑下拉框
  • Droplist:则变为了不可编辑下拉框

本文用默认的可编辑下拉框。

为其添加以控制变量:

在CMFCApplicationDlg::OnInitDialog中,初始化该控制变量

	// TODO: 在此添加额外的初始化代码
	m_combo.SetCurSel(2);//设置默认显示项目
	CString str;
	m_combo.GetLBText(0, str);//获取第0行内容
	//在整个对话框生成完成之前弹出,确认后继续
	MessageBox(str);

 其余基本功能和列表框一致,此处省略。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/296397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号