一、动态创建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);
运行程序。结果如下
大功告成