QQ登录

只需一步,快速开始

CListCtrl列表控件复选框组合使用

[ 复制链接 ]

CListCtrl列表控件复选框组合使用

CListCtrl列表控件复选框组合使用

CListCtrl列表控件复选框组合使用
功能展示
列表控件经常会与其他控件嵌套使用,如与编辑框组合,与列表框组合,与复选框组合,当前例程实现列表控件与复选框组合使用,效果如图。程序初始化给列表控件添加复选框及默认勾选些复选框,并设置复选框文字,双击复选框可获得复选框状态;
要点提示
列表控件使用复选框可使用其自身的成员函数实现SetExtendedStyle(LVS_EX_CHECKBOXES);
复选框的勾选状态设置可用其自身的成员函数SetCheck(m, bstate); m为子项索引,bstate为勾选选项;
勾选的状态可用函数GetCheck(m)获取,m为子项索引
实现功能
1.新建基于对话框的应用程序
2.拖拽一列表控件,关联变量  CListCtrl  m_ctrlList;

3.在程序初始化初始化列表控件
  1. //设置列表控件的报表显示方式
  2.         m_ctrlList.ModifyStyle(LVS_ICON | LVS_SMALLICON | LVS_LIST, LVS_REPORT);
  3.         //设置列表控件使用复选框
  4.         m_ctrlList.SetExtendedStyle(LVS_EX_CHECKBOXES);
  5.         //在列表控件中插入列
  6.         for (int n = 0; n < 4; n++)
  7.         {
  8.                 CString strColumnHeading = _T("");
  9.                 strColumnHeading.Format(_T("Column %d"), n);
  10.                 m_ctrlList.InsertColumn(n, strColumnHeading, LVCFMT_LEFT, 100);
  11.         }
  12.         //在列表控件中插入行
  13.         for (int m = 0; m < 10; m++)
  14.         {
  15.                 m_ctrlList.InsertItem(m, _T(""));
  16.                 m_ctrlList.SetCheck(m, m%2);//隔行勾选

  17.                 for (int n = 1; n < 4; n++)
  18.                 {
  19.                         CString strText = _T("");
  20.                         strText.Format(_T("SubItem %d %d"), m, n);
  21.                         m_ctrlList.SetItemText(m, n, strText);
  22.                 }
  23.         }
复制代码

4.添加列表控件LVN_ITEMCHANGED消息的处理函数,实现复选框子项的状态切换;
  1. void CGkbc8Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
  2. {
  3.         NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
  4.         if (pNMListView->uOldState == 0 && pNMListView->uNewState == 0)//都没状态就不是复选框
  5.                 return;
  6.         if( m_ctrlList.GetCheck(pNMListView->iItem) )
  7.                 m_ctrlList.SetItemText(pNMListView->iItem, pNMListView->iSubItem, _T("FALSE"));
  8.         else
  9.                 m_ctrlList.SetItemText(pNMListView->iItem, pNMListView->iSubItem, _T("TRUE"));

  10.         *pResult = 0;
  11. }
复制代码
5.添加列表控件NM_DBLCLK消息处理函数,实现双击子项时获取子项复选框的状态
  1. void CGkbc8Dlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
  2. {
  3.         NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
  4.         if(pNMListView->iItem   ==   -1)     
  5.         return;  
  6.         CString sText;
  7.         if( m_ctrlList.GetCheck(pNMListView->iItem) )
  8.                 sText.Format("第%d行已勾选",pNMListView->iItem);
  9.         else
  10.                 sText.Format("第%d行未勾选",pNMListView->iItem);
  11.         MessageBox(sText);
  12. }
复制代码
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:CListCtrl列表控件复选框组合使用.rar 
文件大小:727.64 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索