1。先来介绍REPORT类型的CListCtrl:
首先使用下面的语句设置CListCtrl的style:
 DWORD SetExtendedStyle( DWORD dwNewStyle );
其中
 LVS_EX_CHECKBOXES 表示添加CheckBox
 LVS_EX_FULLROWSELECT 表示选择整行
 LVS_EX_GRIDLINES 表示添加表格线

如果设置了LVS_EX_CHECKBOXES属性,则可以用
 BOOL GetCheck( int nItem ) const;
来得到某一行是否Checked。

可以先用下面的语句来删除以前的东西:
 for(int k=2;k>=0;k--) //注意要从后往前删,否则出错
  m_ListCtrl.DeleteColumn(k);
 m_ListCtrl.DeleteAllItems();

用下面的语句新建列:
 m_ListCtrl.InsertColumn(0,_T("文件名"),LVCFMT_IMAGE|LVCFMT_LEFT);
 m_ListCtrl.InsertColumn(1,_T("仪器类别"));
 m_ListCtrl.InsertColumn(2,_T("项目类别"));
 
其中LVCFMT_IMAGE表示可以在第一列加入图标。如果不要图标可以删去。

然后设置列宽:
 for(j=0;j<3;j++)
  m_ListCtrl.SetColumnWidth(j ,100);
 
以下为列表加入图标,如果不需要图标,可以跳过这一步。注意只在第一次加入,如果多次加入会出错!
先在头文件中加入声明:
 CImageList m_ImageList;
这是必要的,如果在cpp的某个函数中加入由于生命期结束,CImageList自动释放,则效果是列表中看不到图标,只看到一个白方块。
下面生成CImageList,并将其绑定到CListCtrl中,这是CImageList中还没有图标,只是一个容器:
 static int flag=2;
 if(flag==2){//只调用一次SetImageList,否则出错
  m_ImageList.Create(128, 128, ILC_COLORDDB|ILC_MASK, 20, 1); 
  m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
 }
 flag=(flag+1)%2;
如果CListCtrl已经用过,曾经加过图标进去,这时就要删除上次放进m_ImageList中的Image
 for(int kk=0;kk<m_ImageList.GetImageCount();kk++)
  m_ImageList.Remove(k);
 
下面介绍如何向CListCtrl里面加入行,并同时为每一行动态加入图标:
假设m_listRowCount为要加入的行数。
 CBitmap* bitmap;
 bitmap=new CBitmap[m_list1rowCount];
 HBITMAP hbitmap; 
 
 for(int i = 0; i < m_listRowCount; i++)
 {
  //为每一行插入相应的缩略图
  CFile f;
  CFileException e;  
  if( !f.Open(m_FileName, CFile::modeRead, &e )){ //m_FileName为bmp文件名,由你来定
   hbitmap = (HBITMAP)LoadImage(NULL,path+"blank.bmp",IMAGE_BITMAP,0,0,
    LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);
  }else{
   f.Close();
   hbitmap = (HBITMAP)LoadImage(NULL,bmpFile,IMAGE_BITMAP,0,0,
    LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);
  }
  bitmap[i].Attach(hbitmap);
  m_ImageList.Add(&bitmap[i], RGB(0, 128, 128));
  
  //插入行
  m_ListCtrl.InsertItem(i,m_FileName,i);
  m_ListCtrl.SetItemText(i,1,type);
  m_ListCtrl.SetItemText(i,2,m_Path);
 }
  
 //记得删除已经没用的临时文件
 if(m_list1rowCount!=0)
  delete[] bitmap;

2。如果是ICON类型的CListCtrl,则要做一点点改动:
把绑定图标集的代码由
 SetImageList(&m_ImageList,LVSIL_SMALL);
改为
 SetImageList(&m_ImageList,LVSIL_NORMAL);

插入行时只用
 InsertItem(i,mainSet.m_FileName,i);
不用
 SetItemText(i,1,type);
之类的代码。

转载于:https://www.cnblogs.com/c1230v/articles/1396983.html

ListCtrl使用相关推荐

  1. VC控件 TreeCtrl 与 ListCtrl 演示(zz)

    VC控件 TreeCtrl 与 ListCtrl 演示 作者:兰州大学现物系 王景生 下载源代码 这个例子类似于 Windows 的资源管理器,程序运行界面如图一所示: 图一 主要用到的类有: CLi ...

  2. 在ListCtrl控件中插入图标

    在ListCttrl控件(Report风格)的使用上,有时需要向子列中插入图标,例如要制作一个下载软件,我们计划在控件的第一列用图标的形式显示下载状态:排队.下载中.出错等等,第二列计划用图标显示下载 ...

  3. 列表控件ListCtrl的使用

    1.新建对话框工程Test,在对话框上放上ListCtrl控件IDC_LIST1,连接变量名m_list,增加代码: BOOL CTestDlg::OnInitDialog() { //        ...

  4. VC++ 中ListCtrl经验总结

    先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话 ...

  5. VC获取其他进程ListCtrl内容

    VC读写其他进程ListCtrl数据到本进程的实例,下面用Windows任务管理器来做测试: 1.捕获窗口句柄: 用SPY++可以看到如下父子窗口关系: 添加ListCtrl,设置style / Re ...

  6. wxpython列表控件listctrl设置某行颜色_wxPython ListCtrl:写入彩色纹理

    在尝试将字符串写入listcrl时,我无法完全理解逻辑.这是正确的方法吗?在self.rightPanel = wx.ListCtrl(spliter, -1, style=wx.LC_REPORT) ...

  7. ListCtrl添加右键菜单(ListCtrl类里编辑,给ListCtrl 发送NM_RCLICK消息)

    在开发中会用到右键菜单,我们来一起学习一下. 假如,我们现在已经准备好了列表,就差右键处理了. 1.在资源视图中的添加一个MENU,如图 2.给要添加右键菜单的ListCtrl子类,添加消息 按 ct ...

  8. MFC ListCtrl和IP控件的使用杂记

    ListCtrl中选中内容的提取 添加一个 list 控件 变量 m_list: POSITION pos = m_list.GetFirstSelectedItemPosition();if (po ...

  9. ListCtrl控件着色

    最近在写一款山寨的反病毒软件,大致功能已经实现,还有一些细小的环节需要细化. 其中,在界面编程中,就用到了给ListCtrl控件着色,查看了网上一些文章,终于实现了. 其实说白了,原理很简单,就是Li ...

  10. wxpython wx listctrl_wxPython - ListCtrl列表排序

    13.4.2 如何对列表排序? 在wxPython中有三个有用的方法可以对列表进行排序,在这一节,我们将按照从易到难的顺序来讨论. 在创建的时候告诉列表去排序 对一个列表控件排序的最容易的方法,是在构 ...

最新文章

  1. 使用 git 下载linux 源码
  2. exchange作业
  3. salt上编写了备份日志的脚本
  4. php对象魔术方法,php学习之类与对象的魔术方法的使用
  5. 24期分期免息可以提前还吗?
  6. 在Java中应用函数式编程请小心!
  7. windbg分析Kernel32.dll导出表
  8. 项目启动会应该注意的几点
  9. ES6 推荐网络文档书籍
  10. oracle自增序列带字母,[原创]Oracle自增序列
  11. 电源中104电容的作用
  12. opencv获取设备ID和名称
  13. 反射一、反射的基本概念
  14. 第二代3D TLC NAND原厂级深度评测 | 是否如你所愿?
  15. 【论】Bike sharing rebalancing problem with variable demand
  16. 媒介匣登陆阿里云市场,助力中小企业品牌推广
  17. 士兵职业基本适应性测试软件,士兵职业基本适应性检测系统 类型1.2.3怎么分...
  18. swapidc的php语言,SWAPIDC目录说明及文件说明及某些常量内容
  19. android studio中清除代码中的无效引用
  20. 联盟成员猛增近20家 联想超融合架构师预言成真

热门文章

  1. 帆软 动态改变填报数据库表;数据分析亦可用此方法
  2. 移动端ajax,移动端ajax请求问题?
  3. mysql ip 远程连接不上_【技术贴】解决MySql连接不上 ip远程连接Host is not allowed to conn-阿里云开发者社区...
  4. python之父名言_Python之父:为什么操作符很有用?
  5. 5、只出现一次的数字
  6. RN调试利器——React Native Debugger
  7. wget整站抓取、网站抓取功能
  8. Net设计模式实例之建造者模式(Builder Pattern)(1)
  9. KVM虚拟机在线扩展磁盘空间
  10. OJ 上常见错误提示