的顶端还可以显示一个列表头用来说明各列的类型。列表视图
的报告格式很适合显示报表(如数据库报表)。
典型的列表控件的格式如图5-7 所示。
图5-7 ClistCtrl 控件形式样例
在讨论如何使用列表视图控件以前,先向读者介绍一下与该控件有关的一些数据类型。
1.LV_COLUMN 结构
该结构仅用于报告式列表视图,用来描述表项的某一列。要想向表项中chā入新的一列,
需要用到该结构。LV_COLUMN 结构的定义为:
typedef struct _LV_COLUMN{
UINT mask;
//屏蔽位的组合(见下面括号),表明哪些成员是有效的
int fmt;
//该列的表头和子项的标题显示格式(LVCF_FMT)。可以是LVCFMT_CENTER、LVCFMT_LEFT
//或LVCFMT_RIGHT
int cx; //以像素为单位的列的宽度(LVCF_FMT)
LPTSTR pszText; //指向存放列表头标题正文的缓冲区(LVCF_TEXT)
int cchTextMax; //标题正文缓冲区的长度(LVCF_TEXT)
int iSubItem; //说明该列的索引(LVCF_SUBITEM)
}LV_COLUMN;
枫叶文学网www.fywxw.com
第5 章 常用控件
·131·
2.LV_ITEM 结构
该结构用来描述一个表项或子项,它包含了项的各种属xìng,其定义为如下:
typedef struct _LV_ITEM {
UINT mask;
//屏蔽位的组合(见下面括号),表明哪些成员是有效的
int iItem;
//从0 开始编号的表项索引(行索引)
int iSubItem;
//从1 开始编号的子项索引(列索引),若值为0 则说明该成员无效,结构描述的是一个表项而不
是子项
UINT state;
//项的状态(LVIF_STATE)
UINT stateMask;
//项的状态屏蔽
LPTSTR pszText;
//指向存放项的正文的缓冲区(LVIF_TEXT)
int cchTextMax;
//正文缓冲区的长度(LVIF_TEXT)
int iImage;
//图标的索引(LVIF_IMAGE)
LPARAM lParam;
//32 位的附加数据(LVIF_PARAM)
}LV_ITEM;
其中lParam 成员可用来存储与项相关的数据,这在有些情况下是很有用的。state 和
stateMask 的值如表5-19 所示,stateMask 用来说明要获取或设置哪些状态。
表5-19 列表视图的状态
状态 对应的状态屏蔽 含义
LVIS_CUT 同左 项被选择用来进行剪切和粘贴cāo作
LVIS_D