工控编程吧

标题: 上位机MFC如何在列表控件中插入行 [打印本页]

作者: qq263946146    时间: 2019-7-29 12:18
标题: 上位机MFC如何在列表控件中插入行
列表框作为报表使用,首先是插入列,然后是插入内容,也就是插入行。
如何插入行?
我们这里假设工程内已添加一列表框控件,并关联了变量CListCtrl        m_ctrlList;
那么我们可以在程序初始化时,调用下面代码添加列,行,查看效果。
关键点是列表框属性要是LVS_REPORT,可以使用函数InsertColumn,InsertItem插入列行。
  1. void CDemoDlg::InitList()
  2. {
  3.         //设置列表控件的报表显示方式
  4.         m_ctrlList.ModifyStyle(LVS_ICON | LVS_SMALLICON | LVS_LIST, LVS_REPORT);

  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.         CString strText = _T("");

  13.         LVITEM lvItem;

  14.         //在列表控件中插入行
  15.         for (int m = 0; m < 10; m++)
  16.         {
  17.                 strText.Format(_T("Item %d"), m);

  18.                 lvItem.mask = LVIF_TEXT;
  19.                 lvItem.iItem = m;
  20.                 lvItem.iSubItem = 0;
  21.                 lvItem.pszText = strText.GetBuffer(strText.GetLength());

  22.                 //插入列表项
  23.                 m_ctrlList.InsertItem(&lvItem);

  24.                 strText.ReleaseBuffer();

  25.                 for (int n = 1; n < 4; n++)
  26.                 {
  27.                         strText.Format(_T("SubItem %d %d"), m, n);

  28.                         lvItem.mask = LVIF_TEXT;
  29.                         lvItem.iItem = m;
  30.                         lvItem.iSubItem = n;
  31.                         lvItem.pszText = strText.GetBuffer(strText.GetLength());

  32.                         m_ctrlList.SetItem(&lvItem);

  33.                         //设置子列表项
  34.                         strText.ReleaseBuffer();
  35.                 }
  36.         }
  37. }
复制代码


[MFC408]1[/MFC408]
[weixinlianxi]1[/weixinlianxi]






欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4