CListCtrl 的应用

一般情况下,CListCtrl能实现的功能:

  CListCtrl m_lisTestResult;

1、插入列(创建表格)

  m_lisTestResult.InsertColumn(0, _T("序号"), LVCFMT_CENTER, 50);

2、填充内容

  m_lisTestResult.InsertItem(iRow, strRow, -1);    //iRow为行号,从0开始; strRow为显示序列号
  m_lisTestResult.SetItemText(iRow, 1, _T("显示内容"));

3、获取行数

  int iRow = m_lisTestResult.GetItemCount();

4、获取列数

  int iList = m_lisTestResult.GetHeaderCtrl().GetItemCount();

5、获取表头字符

   CString strTemp;

   LVCOLUMN lvcol;
       TCHAR  str[32];

lvcol.mask = LVCF_TEXT;
       lvcol.pszText = str;
       lvcol.cchTextMax = 32;
       if (m_lisTestResult.GetColumn(j, &lvcol))
       {
          strTemp.Format(_T("%s,"),lvcol.pszText); 
       }

如果想改变行高、修改字体大小,一般使用CMFCListCtrl

  CMFCListCtrl m_lisTestResult;

  CFont m_font;

m_font.CreateFont(-12,0,0,0,100,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("Arial"));

this->SetFont(&m_font);

if(!m_lisTestResult.GetSafeHwnd())
{
    CRect rect;
    this->GetDlgItem(IDC_LIST_TESTRESULT)->GetWindowRect(&rect);
    ScreenToClient(&rect);

   m_lisTestResult.Create(WS_CHILD | WS_BORDER | WS_VISIBLE | WS_VSCROLL | LVS_REPORT, rect, this, IDC_LIST_TESTRESULT);
    m_lisTestResult.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

   m_lisTestResult.SetFont(&m_font);

  CImageList images;
  images.Create(1, 24, TRUE | ILC_COLOR32, 1, 0);
  m_lisTestResult.SetImageList(&images, LVSIL_SMALL);

}

CListCtrl 的应用,布布扣,bubuko.com

时间: 2024-12-22 14:19:34

CListCtrl 的应用的相关文章

CListCtrl

CCmdTarget     └CListCtrl CListCtrl类封装"列表视图控件"功能,显示每个包含图标(列表视图中)和标签的收集.除图标和标签外,每一项还能有显示在图标和标签的右边的列中的信息. 视图 列表视图控件可用四种不同方式显示其内容,称为"视图". . 图标视图每一项以全尺寸图标(32×32像素)出现,下面有一个标签.用户可在列表视图窗口拖动项到任意位置. · 小图标视图每一项以小图标(16×16像素)出现,右边有一个标签.用户可在列表视图窗口拖

Clistctrl多行删除总结

http://blog.csdn.net/vlily/article/details/7739483 备注:第五种方法已经试过,其余没试过,感觉是对的(第二种方法是错误的 ) CListCtrl选中行有两种属性情况,如果设置了Single Selection为TRUE,则只能单选,否则为多选(默认). 方法一: int CListCtrl::GetSelectionMark(); 返回值:返回选中索引号,否则返回-1 说明:这个函数可以处理单行的情况,但是有一个缺点,它会保留你上次选中的项,所以

VC CListCtrl 第一列列宽自适应

原文链接: http://www.cnblogs.com/sephil/archive/2011/04/03/2004384.html 今天用VC写工具的时候用到CListView,并且ListCtrl的第一列需要自动拉伸,以占满空白区域 Delphi做这个设置是很容易的,只要将Column的AutoSize设置为True就可以了 不过VC/SDK的AutoSize其实是根据Item的文本长度来自动设置Column Width,跟我的要求不符,只好自己实现了 其实很简单,就是觉得麻烦... vo

CListCtrl With Web Links

源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/ListCtrlLinkTest.zip CListCtrlLink是CListCtrl的扩展类,可以在ListCtrl控件中包含网页链接 使用方法: 1. 添加ListCtrlLink.h,ListCtrlLink.cpp,LinkItem.h,LinkItem.cpp文件到你的项目工程中 2. 添加ListCtrl控件,并和相应的CListCtrlLink变量关联 CListCtrlLink

CListCtrl 扩展风格设置方法---SetExtendedStyle和ModifyStyleEx

想把ListCtr设置为整行高亮显示错误的方法为: 1 clistctrl.ModifyStyleEx(0,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); 正确的方法为: 1 DWORD dwStyle = clistctrl.GetExtendedStyle(); 2 dwStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES; 3 clistctrl.SetExtendedStyle(dwStyle); 那么,Modi

继承CListCtrl后,可以改变行的颜色,程序出现错误。

http://www.cnblogs.com/rainbowzc/archive/2012/02/26/2369082.html 按照下面的写了程序之后,调试软件出现错误为: 错误是line:1120 mfc绘图时wingdi.cpp的ASSERT(m_hObject == NULL);句出错..求解释原因和这个wingdi是甚么 指定改变CListCtrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加如的行,方便操作可查看,也可以让添加和修改的记录显示不

CListCtrl颜色设置

动态改变listctrl 单元格背景及文字颜色 m_listshow.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//插入列 m_listshow.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 ); int nRow = m_listshow.InsertItem(0, "11");//插入行 m_listshow.SetItemText(nRow, 1, "ja

CListCtrl报表格式

CListCtrl报表格式      CListCtrl报表格式添加列  CListCtrl报表格式添加行  CListCtrl报表格式设置单元格 一.CListCtrl报表格式  类名:SysListView32 属性 view:report; 二.CListCtrl报表格式添加列 int InsertColumn(intnCol,LPCTSTR lpszColumnHeading,int nFormat=LVCFMT_LEFT,in nWidth=-1,int nSubItem=-1); B

自绘CListCtrl类,重载虚函数DrawItem

[cpp] view plain copy //自绘CListCtrl类,重载虚函数DrawItem void CNewListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your code to draw the specified item ASSERT(lpDrawItemStruct->CtlType == ODT_LISTVIEW); CDC dc; dc.Attach(lpDrawItemStruc

CListCtrl改变数据和插入数据避免闪烁的方法

(1)CListCtrl改变数据避免闪烁: 法一:直接设置LVS_EX_DOUBLEBUFFER扩展属性. 法二:使用双缓冲. 自定义一个类CMyListCtrl继承CListCtrl,重写OnPaint和OnEraseBkgnd方法 void CMyListCtrl::OnPaint() { //使用双缓冲的方法绘制背景   CPaintDC dc(this); // device context for painting   CRect rect; CRect headerRect; CDC