ListView添加节点
ListView插入节点的流程
当ListView控件的样式被设置成report时,ListView控件实际上是分为两个部分, 一部分是Column, 这个部分是用来显示ListView的每一列的标题.
另一部分是Item, 每一个Item就是一行记录,一行记录中可以分成对应每一个'Column'的列,故一个ListView有多少个Column,一行Item就有多少列.
一个ListVie控件如下表所示:
| Column1 | Column2 | Column3 |
| Item0_0 | Item0_1 | Item0_2 |
| Item1_0 | Item1_1 | Item1_2 |
插入流程
先插入column,再插入item.
ListView控件使用一个结构体来表示一个Column, 因此,插入一个column相当于插入一个设置信息的结构体.
结构体的字段含义如下:
typedef struct tagLVCOLUMNW{UINT mask; // 用于记录结构体中哪些字段被使用的,如果这个字段没有被赋上相应的值,即使其他字段被赋值了函数也不会使用int fmt; // 用于记录格式一个Column的格式int cx; // 用于记录Column的宽度LPWSTR pszText; // 用于记录Column的显示的文本int cchTextMax; // 用于记录Column的显示的文本的字符个数int iSubItem; // 用于记录Column的位置int iImage; // 用于记录Column使用到的图标在图标链表中的索引int iOrder;#if (NTDDI_VERSION >= NTDDI_VISTA)int cxMin;int cxDefault;int cxIdeal;#endif} LVCOLUMNW, *LPLVCOLUMNW;
在这个结构体中, mask和fmt这两个字段用一些宏来控制,这些宏分别是:
mask字段所使用到的宏
LVCF_FMT:fmt字段被使用.LVCF_WIDTH:cx字段被使用.LVCF_TEXT:pszText字段被使用.LVCF_SUBITEM:iSubItem字段被使用LVCF_IMAGE:iImage字段被使用LVCF_ORDER:iOrder字段被使用LVCF_MINWIDTH:cxMin字段被使用LVCF_DEFAULTWIDTH:cxDefault字段被使用LVCF_IDEALWIDTH:cxIdeal字段被使用
实例代码
// 获取ListView控件的窗口句柄HWND hListView = GetDlgItem(hWnd , 0x1000);// 插入ColumnLV_COLUMN stcColumn = { 0 };stcColumn.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT;// 设置要使用的字段: 宽度,格式,文本stcColumn.fmt = LVCFMT_CENTER; //文字居中对齐stcColumn.cx = 70; // 宽度stcColumn.pszText = L"姓名"; //设置要显示文本ListView_InsertColumn(hListView , 0 , &stcColumn);// 继续插入一个ColumnstcColumn.pszText = L"年龄";ListView_InsertColumn(hListView , 1 , &stcColumn);// 继续插入一个ColumnstcColumn.pszText = L"性别";ListView_InsertColumn(hListView , 2, &stcColumn);// 插入节点// 节点是按行插入的, 一行就是一个节点// 每个节点被分成对应的列,有多少个Column就有多少列//LV_ITEM stcItem = { 0 };stcItem.mask = LVIF_TEXT; // 设置要使用的字段: 文本stcItem.iItem = 0; // 设置插入到的行号ListView_InsertItem(hListView , &stcItem); // 插入一行ListView_SetItemText(hListView , /*要插入行的listview句柄*/0 , /*行号*/0 , /*列号*/L"王大锤"/*文本*/);// 设置一行中的第0列ListView_SetItemText(hListView ,0 , /*行号*/1 , /*列号*/L"18"); // 设置一行中的第1列ListView_SetItemText(hListView , 0 , 2 , L"男");// 设置一行中的第3列stcItem.iItem = 1; // 设置要插入到的行号ListView_InsertItem(hListView , &stcItem);ListView_SetItemText(hListView ,1 , /*行号*/0 , /*列号*/L"王小锤");ListView_SetItemText(hListView , 1 , 1 , L"28");ListView_SetItemText(hListView , 1 , 2 , L"男");
ListView添加节点的更多相关文章
- 仿喜马拉雅实现ListView添加头布局和脚布局
ListView添加头布局和脚布局 之前学习喜马拉雅的时候做的一个小Demo,贴出来,供大家学习参考: 如果我们当前的页面有多个接口.多种布局的话,我们一般的选择无非就是1.多布局:2.各种复杂滑动 ...
- JQuery 添加节点
Mark一段自己写的添加节点的代码 function reply2(){ $( "<div class=sec1-div5>"+"<div class= ...
- jquery 添加节点的几种方法介绍
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- js实现在末尾添加节点
在末尾添加节点: 1.获取ul标签 2.创建li标签 document.createElement("标签名称")方法 3.创建文本 document.createTextNode ...
- JavaScript案例二:在末尾添加节点
简单实现通过JavaScript来增加HTML节点 <!DOCTYPE html> <html> <head> <title>JavaScript在末尾 ...
- 向html中添加节点
简单: ①,js中: (function () { var box=document.querySelector("#box"); var con1=document.create ...
- 警惕rapidxml的陷阱:添加节点时,请保证变量的生命周期
http://www.cnblogs.com/chutianyao/p/3246592.html 项目中要使用xml打包.解析协议,HQ指定了使用rapidxml--号称是最快的xml解析器. 功能很 ...
- delphi 添加节点
//在选中的节点中上添加1个节点 procedure TForm1.Button1Click(Sender: TObject); begin with TreeView1 do b ...
- ListView添加项目带序列
ListView添加项目带序列 function AddSelItems(listview1:TListView;ListView2:TListView):Boolean;var s: st ...
随机推荐
- WinForm窗体淡入效果界面的简单实现方法
WinForm窗体淡入效果主要使用到控件的Opacity属性 首先在WinForm窗体中拖入一个Timer控件,然后再Timer控件的Tick事件添加如下代码: private void timer1 ...
- IE6/7中li浮动外边距无法撑开ul的解决方法
昨天群里有人提出了这样的问题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 < ...
- windows2008 配置安装FTP服务器
windows2008 配置安装FTP服务器 今天在服务器上开了IIS7,但是要求把一个附件文件夹拷贝到根目录下面,这个附件文件夹有2G多大小,直接用远程桌面映射,一直都拷贝不成功,而且本地缓存越来越 ...
- [置顶] Vector ArrayList区别剖析
Java中Vector与ArrayList的区别?这是一个很常见的面试题目:) Vector与ArrayList其实是非常相似的,不信,你可以看看源码,如果说真的有什么区别的话,大概有以下三点: 1: ...
- 藏地传奇js
http://zd.163.com/m/zhenyan/ js很厉害,有很多值得学习的地方,记录下来. http://res.nie.netease.com/zdcq/qt/13/0625_zheny ...
- 初识Identity
初识Identity 摘要 通过本文你将了解ASP.NET身份验证机制,表单认证的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要优势. 目录 身份验 ...
- Windows Forms框架编程
<Windows Forms框架编程>节选 第九章 设计模式与原则 软件设计模式(Design pattern)是一套被反复使用的代码设计经验总结.使用设计模式是为了可重用代码.让代码 ...
- avalon1.0正式发布
2013年最后的收成:avalon1.0正式发布 大半年前我就说过,MVVM是前端究极的解决方案,因此之后我大多数时间都在折腾avalon,成立了专门的QQ群与感兴趣的一起讨论.感谢第一批吃螃蟹的人, ...
- 《cracking the coding intreview》——链表
前言 最近准备暑假回家回家修整一下,所以时间大部分用来完成项目上的工作,同时为了9月份的校招,晚上的时间我还在学习<cracking the coding intreview>,第二章链表 ...
- WPF专业编程指南 - 那些根元素<>的解释
<Window x:Class="Chapter1_WpfApplication1.MainWindow" xmlns="http://schemas.micros ...