ListContro控件使用

1、在对话框创建ListControl控件,修改View属性为Report;
2、映射ListControl控件成员变量m_listTest;

3、初始化m_listTest:
 LONG lStyle = m_listTest.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE);

 lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES | LVS_EX_HEADERDRAGDROP;
 m_listTest.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)lStyle);

4、增加标题栏:

 LV_COLUMN lvc;

 lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH;

 lvc.iSubItem = 0;     // 列序号
 lvc.pszText = "列表头";    // 列名称
 lvc.cx = 150;      // 列宽度
 m_listTest.InsertColumn(0, &lvc); // 插入列

5、增加数据:

 for (int i=0; i<10; ++i)
 {
  int nItemCount = m_listTest.GetItemCount() + 1;

  LV_ITEM lvItem;

  lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
  lvItem.iSubItem = 0;
  lvItem.state = 0;
  lvItem.stateMask = 0;
  lvItem.iItem = nItemCount;
  lvItem.iSubItem = 0;
  lvItem.pszText = "数据";
  m_listTest.InsertItem(&lvItem);

  m_listTest.SetItemText(nItemCount, 1, "数据2");  // 设置数据
 }

6、设置复选框:
 m_listTest.SetCheck(0, TRUE); // TRUE选择,FALSE不选,适用于LVS_EX_CHECKBOXES格式

7、遍历选中的数据行:

 POSITION pos = m_listTest.GetFirstSelectedItemPosition();
 
 if (pos == NULL)
 {
  return;
 }

 while (pos)
 {
  int nItem = m_listTest.GetNextSelectedItem(pos);
  // 处理数据
 }

8、遍历列标题栏:

 int nHeadItemCount = m_listTest.GetHeaderCtrl()->GetItemCount();

 if (nHeadItemCount > 0)
 {
  HDITEM hdi;
  TCHAR lpBuffer[256];
  
  hdi.mask = HDI_TEXT;
  hdi.pszText = lpBuffer;
  hdi.cchTextMax = 256;
  for ( int i=0; i<m_listTest.GetHeaderCtrl()->GetItemCount(); ++i )
  {
   m_listTest.GetHeaderCtrl()->GetItem(i, &hdi);

   AfxMessageBox(hdi.pszText);    // hdi.pszText列名称
  }
 }

9、删除数据行:

  m_listTest.DeleteItem(0);

10、删除列标题栏:

  m_listTest.DeleteColumn(0);

11、CListView初始化:
 CListView在CExcelListView::OnCreate初始化:

 CListCtrl& listCtrl = GetListCtrl();
 
 LONG lStyle;
 
 lStyle = GetWindowLong(listCtrl.m_hWnd, GWL_STYLE);  // 获取当前窗口格式
 lStyle |= LVS_REPORT | LVS_SHOWSELALWAYS;    // 设置报表格式
 SetWindowLong(listCtrl.m_hWnd, GWL_STYLE, lStyle);  // 设置窗口格式
 
 DWORD dwListStyle = listCtrl.GetExtendedStyle();
 
 // 设置扩展格式
 dwListStyle |= LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_GRIDLINES;
 listCtrl.SetExtendedStyle(dwListStyle);
 listCtrl.EnableToolTips(TRUE);

--后续待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值