列表视图控件(List Control)
列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。
图1 列表视图的4种显示方式
列表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每一个子项所包含的项目的数目必须相同,属性相同的每个子项显示在同一个列中。列表视图控件有两个重要的数据结构LVCOLUMN和LVITEM。LVCOLUMN用于定义报表方式下的“列”的结构;LVITEM用于定义“项”的结构。这两个结构的定义及说明如下:

typedef struct _LVCOLUMN {
UINT mask;            //说明此结构中哪些成员是有效的
int fmt;           //列的对齐方式
int cx;            //列的初始宽度
LPTSTR pszText; //列的标题
int cchTextMax;   //pszText所指向的缓冲区的大小
int iSubItem;      //与列关联的子项的索引值,从0开始
int iImage;           //与列关联的图像列表中指定图像的索引值
int iOrder;           //第几列,0代表最左一列
} LVCOLUMN, FAR *LPLVCOLUMN;
typedef struct _LVITEM {
UINT   mask;        //说明LVITEM结构中哪些成员有效
int    iItem;       //项目的索引值(可以视为行号)从0开始
int    iSubItem;    //子项的索引值(可以视为列号)从0开始
UINT   state;       //子项的状态
UINT   stateMask;   //状态有效的屏蔽位
LPTSTR pszText;   //主项或子项的名称
int    cchTextMax; //pszText所指向的缓冲区大小
int    iImage;       //关联图像列表中指定图像的索引值
LPARAM lParam;    //程序定义的32位参数
int iIndent;          //表示图像位置缩进的单位
} LVITEM, FAR *LPLVITEM;

列表项常用的属性如下:View指定程序运行后列表视图控件最初显示的方式,可以设置为Icon(大图标)、SmallIcon(小图标)、List(列表)或Report(报表);Single selection表示每次只能选中一个项;Auto arrange使得项目在Icon和Small Icon显示方式下能够自动排序;Edit Labels表示可以编辑项目的卷标;No column header表示取消控件所有列的标题。

列表视图控件(List Control)
列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。
图1 列表视图的4种显示方式
列表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每一个子项所包含的项目的数目必须相同,属性相同的每个子项显示在同一个列中。列表视图控件有两个重要的数据结构LVCOLUMN和LVITEM。LVCOLUMN用于定义报表方式下的“列”的结构;LVITEM用于定义“项”的结构。这两个结构的定义及说明如下:

typedef struct _LVCOLUMN {
UINT mask;            //说明此结构中哪些成员是有效的
int fmt;           //列的对齐方式
int cx;            //列的初始宽度
LPTSTR pszText; //列的标题
int cchTextMax;   //pszText所指向的缓冲区的大小
int iSubItem;      //与列关联的子项的索引值,从0开始
int iImage;           //与列关联的图像列表中指定图像的索引值
int iOrder;           //第几列,0代表最左一列
} LVCOLUMN, FAR *LPLVCOLUMN;
typedef struct _LVITEM {
UINT   mask;        //说明LVITEM结构中哪些成员有效
int    iItem;       //项目的索引值(可以视为行号)从0开始
int    iSubItem;    //子项的索引值(可以视为列号)从0开始
UINT   state;       //子项的状态
UINT   stateMask;   //状态有效的屏蔽位
LPTSTR pszText;   //主项或子项的名称
int    cchTextMax; //pszText所指向的缓冲区大小
int    iImage;       //关联图像列表中指定图像的索引值
LPARAM lParam;    //程序定义的32位参数
int iIndent;          //表示图像位置缩进的单位
} LVITEM, FAR *LPLVITEM;

列表项常用的属性如下:View指定程序运行后列表视图控件最初显示的方式,可以设置为Icon(大图标)、SmallIcon(小图标)、List(列表)或Report(报表);Single selection表示每次只能选中一个项;Auto arrange使得项目在Icon和Small Icon显示方式下能够自动排序;Edit Labels表示可以编辑项目的卷标;No column header表示取消控件所有列的标题。

VC/MFC列表CListCtrl类的LVCOLUMN和LVITEM详解的更多相关文章

  1. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  2. StringUtils类API及使用方法详解

    StringUtils类API及使用方法详解 StringUtils方法概览 判空函数 1)StringUtils.isEmpty(String str) 2)StringUtils.isNotEmp ...

  3. 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解

    PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...

  4. 列表CListCtrl类使用

    CListCtrl是列表控件类,列表控件的每一行叫做一个item,每一列叫做一个subitem.每一行和每一列都有个ID号,可以确定唯一的单元格. 最近使用了这个控件,有心得总结如下: (Dialog ...

  5. <JVM中篇:字节码与类的加载篇>03-类的加载过程(类的生命周期)详解

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  6. Object类、包装类、内部类详解

    1.Object类 1.概念: 1.1 所有类在创建时都默认继承了java.lang.Object 1.2 所有类对象都可以声明为类对象的引用 Object ob1=new String(); Obj ...

  7. Kotlin——从无到有系列之中级篇(四):面向对象的特征与类(class)继承详解

    如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 在前面的章节中,详 ...

  8. [Java]Java类和对象内存分配详解

    描述 代码说明: 一.当Person p1 = new Person();第一次被调用时需要做两件事: 1.先判断类加载器是否加载过Person类,如果没有则加载到Person类型到方法区 2.在堆中 ...

  9. 类的命名空间与卸载详解及jvisualvm使用

    类的命名空间详解: 在上一次[https://www.cnblogs.com/webor2006/p/9108301.html]最后实验中有一个违背咱们理解的,这里回顾一下: 也就是说,"某 ...

随机推荐

  1. 初次使用IDEA创建maven项目

    第一次使用IDEA,创建一个maven项目,首先下载maven,官方地址:http://maven.apache.org/download.cgi 解压,在环境变量里配置 path里 D:\maven ...

  2. 微信小程序 video组件 不随页面滚动

    1.页面初始化(滚动前)时,video所在位置 2.页面滚动后,video视频组件所在位置 看了别人家的小程序并不会出现这种状况.最后检查发现,是页面包裹层设置了 height:100% 导致的 顺便 ...

  3. Python之布尔

    Python之布尔(bool) 在计算机中的所用判断,都是用布尔的True和False来判断的. 条件成立:True ( 1 ) 条件不成立:False ( 0 ) 以下情况是False: [ ]:空 ...

  4. 记一次C++编程引用obj文件作为静态库文件

    简介 常用静态库文件的名字一般是 ***.lib ,例如 nisyscfg.lib 就是一个静态库文件,但是一个例程居然是引用 **.obj 文件作为静态库,有点非常规啊. 这是一个NI488.2 的 ...

  5. 【05】AJAX实例-检测用户名是否存在(实例)

    AJAX实例-检测用户名是否存在   用户注册时,需要填写个人信息,其中包括用户名.当用户输入完成时,JavaScript 需要及时检测用户名是否存在,如果存在给出提示,请用户更换用户名. 当然,这个 ...

  6. Qt——信号与槽用法总结(未完待续)

    1.设计模式中信号与槽编辑选项卡 2.右键组件,转到槽,写函数 void LoginDialog::on_loginBtn_clicked() { accept(); } 3.信号与槽编辑模式 按下F ...

  7. BNUOJ 3226 Godfather

    Godfather Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID:  ...

  8. 洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠

    题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气. ...

  9. HDU 4473

    题目大意: 给定一个long long 型的数 n,找到一共有多少对a,b,使比n小的某一个数的是a*b的倍数 这样我们可以理解为 存在a*b*c <= n,令 a <= b <= ...

  10. 【KMP+最小循环节】F. Cyclic Nacklace

    https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/F [题意] 给定一个字符串,问在字符串后最少添加多少个字母,得到的新字符串能是前 ...