备注:在MFC程序中使用CCheckListBox的时候, 如果使用对话框模版,需要把列表框设置成Owner Draw, Fixed的, 最好带上has string, 这里主要是说明如何获得点击选择的消息,选中,或者取消选中, 在察看源代码之后可以发现, 这个时候CCheckListBox会向父窗口发送一个WM_COMMAND的消息,消息的WPARAM中低位表示的CCheckListBox的ID, 高位是CLBN_CHKCHANGE(40), 所以对于MFC程序,重载OnCommand即可. 或者MFC提供了宏ON_CLBN_CHKCHANGE(id,memberfunc)也可以.
1、放置listbox控件,设置属性 Onwer Draw:Fixed,hasstring:True;
右键控件定义变量:CCheckListBoxm_chklist;
2、listbox设置
m_chklist.SetCheckStyle(BS_CHECKBOX);
m_chklist.AddString("浏览文件");
m_chklist.AddStr ing("操作数据库");
m_chklist.AddString("前台操作");
m_chklist.AddString("后台管理");
3、为控件添加双击消息
ON_LBN_DBLCLK(IDC_CHKLIST, OnDblclkChklist)
消息具体:
void CListboxChkSelDlg::OnDblclkChklist()
{
int i=m_chklist.GetCurSel();
if(i<0)return;
if(m_chklist.GetCheck(i)<1)
m_chklist.SetCheck(i,1);
else
m_chklist.SetCheck(i,0);
}