【MFC开发(9)】列表控件List Box

1.列表框中添加数据

(1)顺序加入

dlg初始化函数中进行添加

//给列表框中添加数据
	m_listbox.AddString(_T("111"));
	m_listbox.AddString(_T("000"));
	m_listbox.AddString(_T("222"));

效果如下所示,默认是会给排序的,不是按添加顺序来的

如果不想让其排序,可在属性中修改sort属性为false即可,则会按照添加顺序来从上到下显示数据

(2)自定义插入某个位置

//自定义位置插入数据
	//第一个参数为序号
	//第二个参数为插入的数据内容
	m_listbox.InsertString(1,_T("999"));
	m_listbox.InsertString(1, _T("aaa"));

虽然都插入的是序号1的位置,但是插入之后序号就改变了再继续找序号1进行插入

 

2.删除列表框中的数据

(1)删除某个序列的数据,这里设置一个按钮点击事件来删除第一个数据,每点击一次就删除当前第一个数据哈

void CMFC_Test1Dlg::OnBnClickedButton12()
{
	// TODO:  在此添加控件通知处理程序代码
	//删除指定索引的数据
	//每点击一次就删除第一个列表选项
	m_listbox.DeleteString(0);
}

 

 (2)清空所有数据,这里设置一个按钮点击事件来清空列表框中的所有数据

void CMFC_Test1Dlg::OnBnClickedButton13()
{
	// TODO:  在此添加控件通知处理程序代码

	//删除列表框中的全部数据
	m_listbox.ResetContent();

}

 

 3.获取列表中数据的数量

//获取列表中的数据的数量并且弹出提示
	int list_num = m_listbox.GetCount();
	CString str;
	str.Format(_T("%d"), list_num);
	MessageBox(str);

 4.设置列表框选中某条数据

//设置默认选中某条数据
	m_listbox.SetCurSel(1);

 

5.获得当前列表框中选中的数据序列号

//获得当前列表框中选中的数据序列号
	int idx = m_listbox.GetCurSel();

返回以0开始的选中的数据索引,如果没选中任何一条数据,则返回 -1.

6.列表框的多选模式:

刚才给大家讲解的 SetCurSel 和 GetCurSel 都是针对列表框的单选模式进行的,大家在使用其它的软件的时候也注意过有的列表框控件是支持多选的,还支持 Ctrl、Shift 键快捷操作。控件的 Selection 属性进行修改。默认是 Single,也就是单选。我们可以改成 Multiple、Extended,都是多选的意思。其中 Extended 支持 Ctrl、Shift 键操作。None:选中item,但是不高亮,只显示该item上交点(item外有矩形框)。

(1)设置选中多条数据

	//设置选中多条数据
	m_listbox.SetSel(0);
	m_listbox.SetSel(1);
	m_listbox.SetSel(2);

(2)获取选中的序列号

//获得当前选中的行数
	int list_sel = m_listbox.GetSelCount();
	if (list_sel > 0){
		//新建一个变量来作为缓冲区来存放
		int *p = new int[list_sel];
		//获取选中的数据
		//第一个参数是数量,第二个参数是缓冲区
		m_listbox.GetSelItems(list_sel, p);

		for (int i = 0; i < list_sel; i++){
			//获取选中的序列号
			int i_sel = p[i];
		}
	}

7.获得选中的数据内容

//获得选中的数据内容
	CString str_list;
	//第一个参数对应序列号,第二个对应保存的变量
	m_listbox.GetText(0, str_list);

 

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MFC中的List Box控件用于显示一个垂直列表,其中每个项都可以是文本、图像或两者的组合。下面是List Box控件的使用方法: 1. 在资源编辑器中添加List Box控件。 2. 在代码中声明一个CListBox类的对象。 3. 使用CListBox类的函数进行控件的初始化。 4. 添加、删除和选择项: - 使用AddString()函数向List Box控件中添加项。 - 使用DeleteString()函数从List Box控件中删除项。 - 使用GetCurSel()函数获取当前选中项的索引。 - 使用SetCurSel()函数设置选中项。 5. 处理控件的消息: - 在类的message map中添加对LBN_SELCHANGE消息的响应函数,以便在选择项时执行相应的操作。 - 在类的message map中添加对LBN_DBLCLK消息的响应函数,以便在双击项时执行相应的操作。 下面是一个简单的示例代码,演示如何使用List Box控件: ```cpp // 声明一个List Box控件的成员变量 CListBox m_listBox; // 初始化List Box控件 m_listBox.Create(WS_CHILD | WS_VISIBLE | LBS_STANDARD, CRect(10, 10, 200, 150), this, IDC_LISTBOX); // 向List Box控件中添加项 m_listBox.AddString(_T("Item 1")); m_listBox.AddString(_T("Item 2")); m_listBox.AddString(_T("Item 3")); // 获取当前选中项的索引 int nIndex = m_listBox.GetCurSel(); // 设置选中项 m_listBox.SetCurSel(1); // 处理控件的消息 BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx) ON_LBN_SELCHANGE(IDC_LISTBOX, &CMyDialog::OnLbnSelchangeListbox) ON_LBN_DBLCLK(IDC_LISTBOX, &CMyDialog::OnLbnDblclkListbox) END_MESSAGE_MAP() // LBN_SELCHANGE消息响应函数 void CMyDialog::OnLbnSelchangeListbox() { // 执行相应的操作 } // LBN_DBLCLK消息响应函数 void CMyDialog::OnLbnDblclkListbox() { // 执行相应的操作 } ``` 注意,在使用List Box控件时,需要注意控件的风格和消息响应函数的处理方式,以便实现相应的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demo.demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值