现在的位置: 首页 > 综合 > 正文

在VC中使用CCheckListBox

2013年05月17日 ⁄ 综合 ⁄ 共 950字 ⁄ 字号 评论关闭

在软件应用中经常会遇到需要复选功能的列表框。类CCheckListBox实现了Windows复选列表框。复选列表框显示项的一个列表,例如文件名列表。列表中的每项都有一个复选框,方便使用。但是VC的控

件列表中并添加CCheckListBox,因此在使用CCheckListBox还要进行一些手动设置,以下是一个小的应用示例。

1.在对话框中,加入一个列表框IDC_LIST1
其属性设置为:
Style->Owner draw ->Fixed,并选中Has Strings。
2.用Class wizard为列表框添加成员变量m_checkist,它的数据类型为CListBox
3.找到添加的对话框的类定义处,将CListoBox类型改为CCheckListBox类型。
4.OnMyDlgInit并添加代码如下:
m_checklist.Addstring(_T("ITEM1"));
m_checklist.Addstring(_T("ITEM2"));
m_checklist.Addstring(_T("ITEM3"));
//m_checklist.SetCheckStyle(BS_AUTO3STATE); //三态模式

5.使用类向导为IDC_LIST1添加LBN_SELCHANGE消息响应函数OnSelchangeList1()
可以使用m_checklist.GetCount()获得列表中的项目个数
可以使用m_checklist.GetCheck(i)获得列表中第i个项目的状态,返回0,选中时返回1,不确定时返回2。

6.在对话框中添加一个静态文本来进行测试,ID为IDC_STATIC。
在OnSelchangeList1() 函数中添加如下代码:

 CString str="你选中了";
 int count=m_checklist.GetCount();
 for(int i=0;i<count;i++)
 {
  if(m_checklist.GetCheck(i)==1)
  {
   CString tmp;
   m_checklist.GetText(i,tmp);
   str+=tmp;
  }
 }
 GetDlgItem(IDC_STATIC)->SetWindowText(str);

 

呵呵,看到想要的效果了吧。

抱歉!评论已关闭.