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 ...
随机推荐
- C# 利用SMTP异步发送邮件
C#实现收发邮件功能需要用到两个命名空间 System.Net; 和 System.Net.Mail; SmtpClient client = new SmtpClient("smtp.g ...
- git 简单教程更新
0.初始化 $ git config --global user.name "xxx" $ git config --global user.email "xxx@gma ...
- linux服务创建及jq配置服务列表查看
1.应用背景 随着业务需求,后台处理服务不断增多,对于这些服务或后台程序的查看.更新操作越来越凌乱,所以我们首先需要一个服务列表查看工具,方便查看各 服务的端口.运行状态.jar包路径等等. 2.创建 ...
- 自己动手实现Expression翻译器 – Part I
伴随.Net3.5到来的Expression,围绕着它产生了各种各样有趣的技术与应用,Linq to object.Linq to sql.Linq to sqllite.Linq to Anythi ...
- 解决Github使用Fastly CDN而导致不能加载网页的方法
Github现在基本属于“安全”网站,但 Github使用fastly.net的CDN服务后,其网站在国内经常不能正常加载网页.github.global.ssl.fastly.net的亚洲IP一般为 ...
- MVC UnitOfWork EntityFramework架构
MVC UnitOfWork EntityFramework架构,网站速度慢的原因总结! 最近参考使用了郭明峰的一套架构来做新的项目架构,这套架构看起来还是不错的,先向小郭同学的分享精神致敬! (郭同 ...
- Bootstrap3.0学习第八轮
Bootstrap3.0学习第八轮(工具Class) 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/34 ...
- tomcat创建一个windows服务
具体步骤如下: 1.把JDK解压到C:\Program Files\Java下,Tomcat解压到D:\tomcat下 2.配置环境变量 JAVA_HOME:C:\Program Files\Java ...
- svn签出单个文件
) { return new string[]{ string.Format("cd /d \"{0}\"",System.IO.Path.GetDirecto ...
- EasyUI实现异步加载tree(整合Struts2)
首先jsp页面有一ul用于展现Tree <ul id="mytree"></ul> 加载Tree <script type="text/ja ...