多选列表框






4.25/5 (4投票s)
1999年12月13日

158828

3541
扩展 CCheckListBox 类以拥有多个复选框列。
在一个最近的项目中,我需要一个CCheckListbox
类,允许在字符串前面有多个复选框。CCheckListbox
设置的三态样式并不能满足我的需求。我有一个人员列表,他们可以同时属于两个不同的类别。三态样式只能告诉我此人属于哪个类别,但我需要知道具体是哪个。
因此,我决定编写一个类来扩展CCheckListbox
的功能。我最终创建了CMultiCheckListBox
类。它的作用是在原始CCheckListbox
实现中的复选框前面添加另一个复选框
。
要使用该类,请按照以下步骤操作
- 将一个成员变量添加到所需的类(
CDialog
、CFormView
等)CMultiCheckListBox m_List;
- 对刚刚创建的列表框变量进行子类化。
void CCharityReportDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCharityReportDlg) DDX_Control(pDX, IDC_LIST1, m_List); //}}AFX_DATA_MAP }
- 要设置列表框项目
nIndex
的第一个复选框
,请调用SetCheck(nIndex, nCheck)
m_List.SetCheck(nIndex,1);
- 要设置第二个
复选框
,请调用SetMultiCheck(nIndex, nCheck)
m_List.SetMultiCheck(nIndex,1);
- 要检索第一个
复选框
的复选框
状态,请调用GetCheck(nIndex)
m_List.GetCheck(nIndex);
- 要检索第二个
复选框
的复选框
状态,请调用GetMultiCheck(nIndex)
m_List.MultiGetCheck(nIndex);
历史
- 1999年12月13日:初始版本
许可证
本文没有明确的许可证附加,但可能包含文章文本或下载文件本身中的使用条款。如有疑问,请通过下面的讨论区联系作者。作者可能使用的许可证列表可以在此处找到。