微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VC中CListCtrl中的LVCOLUMN和LVITEM详细介绍

列表视图控件(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;

mask
Set of flags that specify which members of this structure contain data to be set or which members are being requested. This member can have one or more of the following flags set:
Flag Description
LVIF_COLUMNS The cColumns 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 theLVN_GETDISPINFO notification message.
LVIF_GROUPID The iGroupID 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 an 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_TEXT The pszText member is valid or must be filled in.

列表项常用的属性如下:

View指定程序运行后列表视图控件最初显示的方式,可以设置为Icon(大图标)、SmallIcon(小图标)、List(列表)或Report(报表);Single selection表示每次只能选中一个项;

Auto arrange使得项目在Icon和Small Icon显示方式下能够自动排序;Edit Labels表示可以编辑项目的卷标;No column header表示取消控件所有列的标题


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐