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 ...
随机推荐
- 学习Sass之安装Sass
学习Sass之安装Sass 为什么使用Sass 作为前端(html.javascript.css)的三大马车之一的css,一直以静态语言存在,HTML5火遍大江南北了.javascript由于NODE ...
- OSGi.NET 学习笔记
OSGi.NET 学习笔记 [目录] 持续更新和调整中,本人学习笔记,非官方文档,难免疏漏,仅供参考. OSGi.NET SDK下载地址. 前言及环境准备 模块化和插件化 概念 实例 小结 面向服 ...
- Using Ninject in a Web Application
http://aidenweb.co.uk/?p=15 Using Ninject in a Web Application I have been meaning to look at Ninjec ...
- Jquery Validate 表单验证的多种方式
ASP.NET MVC Jquery Validate 表单验证的多种方式 在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体 ...
- Web API实现POST报文的构造与推送
ASP.NET Web API实现POST报文的构造与推送 毕设和OAuth协议相关,而要理解OAuth协议就必须理解HTTP GET/POST方法.因此研究了一下如何使用Web API或MVC构 ...
- linux下的中文编码问题
很多linux的初学者都会碰到这样一个问题:把windows下的文档拷到linux系统,会出现乱码!其实这涉及到中文编码的问题.linux系统默认的是统一码(utf8).而如果你的文件是big5,显然 ...
- PYTHON ASP FRAMEWORK
Python 融于ASP框架 一.ASP的平反 想到ASP 很多人会说 “asp语言很蛋疼,不能面向对象,功能单一,很多东西实现不了” 等等诸如此类. 以上说法都是错误的,其一ASp不是一种语言是 ...
- Event notifications
SQL Server 事件通知(Event notifications) 2013-12-13 17:21 by 听风吹雨, 333 阅读, 3 评论, 收藏, 编辑 一. 背景 SQL Server ...
- Memory Dump 分析器
Visual Studio 2013 新功能 Memory Dump 分析器 TechEd2013 发现新功能 12月5日和6日,在国家会议中心参加了微软的 TechEd2013 技术大会,了解了 ...
- D13
=-=由于本人有极度强迫症啊.. 然后这个博客又不能改顺序.. 前几天由于台风是在宾馆写题..简直各种没有效率..所以今天就先草草写下题解,之后再完善吧 T1:字符串处理 c++的话,解决读空格继续读 ...