多选列表框






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日:初始版本
许可证
本文没有明确的许可证附加,但可能包含文章文本或下载文件本身中的使用条款。如有疑问,请通过下面的讨论区联系作者。作者可能使用的许可证列表可以在此处找到。
