列表视图控件(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表示取消控件所有列的标题。

mask //标明列表框单元项有的特性Set of flags that specify which members of this structure contain data to be set or which members are being requested. This can be one or more of the following flags:

LVIF_TEXT The pszText member is valid or must be filled in.
LVIF_IMAGE The iImage member is valid or must be filled in.
LVIF_INDENT The iIndent member is valid or must be filled in.
LVIF_NORECOMPUTE The control will not generate LVN_GETDISPINFO to retrieve text information if it receives a LVM_GETITEM message. Instead, the pszText member will contain LPSTR_TEXTCALLBACK.
LVIF_PARAM The lParam member is valid or must be filled in.
LVIF_STATE The state member is valid or must be filled in.
LVIF_DI_SETITEM The operating system should store the requested list item information and not ask for it again. This flag is used only with the LVN_GETDISPINFO notification message.

LVITEM结构-列表视图控件的一个数据结构相关推荐

  1. 鸡啄米vc++2010系列27(列表视图控件List Control 上)

    列表视图控件简介 列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁.直观,在实际应用中能为用户带来方便. 列表视图控件是对前面讲到 ...

  2. VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)

    上一节是关于列表视图控件List Control的上半部分,简单介绍了列表视图控件,其通知消息的处理和有关结构体的定义.本节继续讲解下半部分,包括列表视图控件的创建.CListCtrl类的主要成员函数 ...

  3. linux sort -w32,WIN32汇编: 31.列表视图控件

    第三十一课 列表视图控件 本课中我们将学习如何创建和使用列表视图控件. 理论: 列表视图控件和树型视图.丰富文本编辑控件一样是通用控件的一种.可能您都已经知道了列表视图控件,只不过是不知道它的确切名字 ...

  4. CTreeCtrl::InsertItem给树形视图控件添加一个项目

    1:CTreeCtrl::InsertItem给树形视图控件添加一个项目 项目由HTREEITEM句柄来标识,并输入给InsertItem的参数之一是父项目的HTREEITEM句柄.创建子项目就是将一 ...

  5. C#|Winform编程之(列表视图控件)listView控件

    列表视图控件主要功能是将对象(文件.图片.项目)等通过列表的形式展示出来.就像我们在windows操作系统中点开每个文件夹之后对于文件夹下的文件,都是一种列表视图.我们可以选择大图标视图.小图标视图. ...

  6. Windows Phone 8.1 新特性 - 控件之列表选择控件

    本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显 ...

  7. 【Qt】模型/视图结构和数据绑定控件

    模型/视图结构 模型/视图是指处理数据的模型和向用户提供GUI的视图,这是从GUI分离数据的一种结构,又称为MVC(Model-View-Controller). 模型 QAbstractItemMo ...

  8. Win32 树视图控件的基本使用

    首先参阅 https://blog.csdn.net/bcbobo21cn/article/details/106287676 认识Windows公共控件库的使用: 一 创建树视图 首先用如下代码看一 ...

  9. 学习笔记(五)——数据适配器、数据表、数据网格视图控件的综合应用。

    学习笔记(五)--数据适配器.数据表.数据网格视图控件的综合应用. 1.  批量修改 修改包括增加,删除以及更新3个操作,所以声明实力化3个SQL命令分别应用于插入,删除以及修改 将声明的SQL命令连 ...

最新文章

  1. 读文件计算方法执行时间的实例
  2. 降息大法好!银行4.35%消费贷了解一下?
  3. labview求n阶乘的和_LABVIEW求1到N所有数的阶乘之和
  4. Java程序员如何在编码中减少bug存在
  5. 使用nmap扫描提示utf-8编码错误_Web漏洞扫描神器Nikto使用指南
  6. 虹软免费人脸识别SDK注册指南
  7. python递归算法_python递归算法(上)
  8. 前端学习(2985):一文理解数据劫持3观察者模式
  9. 安卓apk的编译与反编译
  10. 使用C++编程语言保存数据库查询结果的方法
  11. 用策略屏蔽135 139 445 3389端口+网络端口安全防护技 .
  12. 管理信息系统开发项目管理(VIVID)
  13. 设计模式(JAVA)——Facade模式
  14. Windows批处理文件(.bat文件和.cmd文件)介绍以及简单使用
  15. 用了三年teambition的我,为什么改用飞项了?
  16. 请试试看每天吃一碗;白头发不见了,给爸妈留
  17. 倒计时2天:百度“文心一言”即将上线!
  18. UE4中修改模型mesh资源的枢轴坐标原点位置
  19. Java程序启动QQ(九)
  20. 建材企业ERP 重在规划(转)

热门文章

  1. 显示设备不属于微型计算机的外部设备,微型计算机常用外部设备试题解析
  2. EJS学习(五)之EJS的CommonJs规范版本
  3. UITableView的动态获取高度 排版
  4. 为什么要用unittest
  5. (干货)构建镜像之docker commit
  6. IIS------如何安装IIS
  7. Jquery对象和dom对象获取html的方法
  8. JSON进阶第二篇 AJAX方式传递JSON数据
  9. 【Wicket是个什么鬼】wicket框架URL路由规则
  10. jQuery之end()和pushStack()