MFC笔记1-动态创建CChecklistbox

一、动态创建CChecklistbox

在VS中,CCheckListBox控件无法选择,能选的只有CListBox控件,这个控件的选项前面没有checkbox,如何才能用CCheckListBox了,方法如下:

1. 新建对话框应用

2.给对话框加一个ListBox控件

3.修改ListBox的2个属性: Owner draw :Fixed, Has String:true

4. 给ListBox加一个变量 m_list,这个变量默认是CListBox的类型,我们修改为CCheckListBox;


在初始化函数中给 CCheckListBox控件中加入变量
m_list.AddString(_T("A"));
m_list.AddString(_T("B"));
m_list.AddString(_T("C"));
m_list.AddString(_T("d"));
m_list.AddString(_T("e"));
m_list.AddString(_T("f"));
m_list.AddString(_T("g"));
m_list.AddString(_T("i"));
m_list.AddString(_T("j"));

结果如下


二、获取CChecklistbox中的复选值

简单的获取CChecklistbox中的值,使用这个类自带的事件处理程序“OnLbnSelchangeList”即可。

1.首先右键单击CChecklistbox控件。选择添加事件处理程序


选择“LBN_SELECTCHANGE”函数并添加

2.然后添加一个静态文本框,此处我们将其ID设置为    IDC_STATIC_SS

3.进入刚刚1中建立的函数,并在函数体中添加以下内容

CString str =_T( "你选中了");
	int count = m_list.GetCount();
	for (int i = 0; i<count; i++)
	{
		if (m_list.GetCheck(i) == 1)
		{
			CString tmp;
			m_list.GetText(i, tmp);
			str += tmp;
		}
	}
	GetDlgItem(IDC_STATIC_SS)->SetWindowText(str);
运行程序。结果如下


大功告成


猜你喜欢

转载自blog.csdn.net/weixin_36193572/article/details/79693586