CCheckListBox只用于自定义的控件,列表中不仅仅包含字符串文本。
类CCheckListBox实现了Windows复选列表框。复选列表框显示项的一个列表,例如文件名列表。列表中的每项都有一个
复选框。
当然简单的复选列表框可以只有字符串文本和相应的
复选框。实际上也可以没有文本。例如可以是一个
位图以及相应于
复选框的列表。
创建自己的复选列表框,要从类CCheckListBox派生一个子类。然后为它写一个
构造函数,并调用成员函数Create。
如果复选列表框是缺省形式的(由左边带有固定大小的
复选框的字符串组成),就可以用缺省的CCheckListBox::DrawItem函数绘制复选列表框。否则就要覆盖函数CListBox::CompareItem、CCheckListBox::DrawItem以及CCheckListBox::Meas-ureItem。
可以在对话框模板或程序代码中直接创建一个复选列表框。
#include
使用步骤及说明(限于MFC)
1 拖入一个List Box 控件到对话框上。
2 选择控件属性如下图(Owner draw选中Fixed;Has string选中)
3 然后给已经拖入控件的对话框定义一个CCheckListBox类型成员,然后绑定拖入的控件。
4 使用CCheckListBox类的AddString方法可以加入复选框。
5根据需求 勾选或反选相关索引 调用成员函数 void SetCheck(int nIndex, int nCheck);
6 关于CCheckListBox事件,如果需要响应每一项前面的CCheckBox的点击事件,该事件不能在类向导中添加,必须手工添加,首先在头文件中添加 :
afx_msg void OnCheckchangeList1();
然后在CPP文件中如下代码中添加:
BEGIN_MESSAGE_MAP(CCheckListTestDlg, CDialog)
//{{AFX_MSG_MAP(CCheckListTestDlg)
//}}AFX_MSG_MAP
ON_CLBN_CHKCHANGE(IDC_LIST1, OnCheckchangeList1) //所添加部分
END_MESSAGE_MAP()
最后添加函数定义
void CCheckListTestDlg::OnCheckchangeList1()
{
}
在函数体中添加代码即可。