工控编程吧

标题: 上位机MFC如何在列表控件中显示网格线 [打印本页]

作者: qq263946146    时间: 2019-7-29 13:01
标题: 上位机MFC如何在列表控件中显示网格线
报表都有网格来分割内容,但也可以隐藏或显示是否显示网格。
同样,列表框也可以设置是否有网格。
        //设置列表控件显示网格线
        m_ctrlList.SetExtendedStyle(LVS_EX_GRIDLINES);

对应上面的一代码。m_ctrlList为我们关联的列表控件。
这里也准备了一个例程。
关联了个列表控件后,在程序初始化时调用下面的代码,设置了列表控件。
  1. AfxOleInit();

  2.                 //设置列表控件的报表显示方式
  3.         m_ctrlList.ModifyStyle(LVS_ICON | LVS_SMALLICON | LVS_LIST, LVS_REPORT);

  4.         //在列表控件中插入列
  5.         for (int n = 0; n < 4; n++)
  6.         {
  7.                 CString strColumnHeading = _T("");
  8.                 strColumnHeading.Format(_T("Column %d"), n);
  9.                 m_ctrlList.InsertColumn(n, strColumnHeading, LVCFMT_LEFT, 100);
  10.         }

  11.         //在列表控件中插入项
  12.         for (int m = 0; m < 10; m++)
  13.         {
  14.                 CString strItem = _T("");
  15.                 strItem.Format("Item %d", m);
  16.                 m_ctrlList.InsertItem(m, strItem);

  17.                 //设置列表中项的文本和数据
  18.                 for (int n = 1; n < 4; n++)
  19.                 {
  20.                         CString strText = _T("");
  21.                         strText.Format(_T("SubItem %d %d"), m, n);
  22.                         m_ctrlList.SetItemText(m, n, strText);
  23.                         m_ctrlList.SetItemData(m, m);
  24.                 }
  25.         }

  26.         //设置列表控件的背景图片
  27.         char c[100];
  28.         GetModuleFileName(NULL,c,100);
  29.         CString sName(c);
  30.         sName= sName.Left(sName.ReverseFind('\\')+1);
  31.         sName += "1.bmp";
  32.         m_ctrlList.SetBkImage(sName.GetBuffer(0));

  33.         //设置文本背景颜色为透明色
  34.         m_ctrlList.SetTextBkColor(CLR_NONE);
  35.                 //设置列表控件整行选中
  36.         m_ctrlList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
  37. //设置列表控件显示网格线
  38.         m_ctrlList.SetExtendedStyle(LVS_EX_GRIDLINES);
复制代码
(, 下载次数: 0)