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-View Window Styles
LVS_ALIGNLEFT item左对齐, 小icon视图
LVS_ALIGNMASK the control's current alignment
LVS_ALIGNTOP Icon和上排对齐, 小icon视图
LVS_AUTOARRANGE 自动对齐, 小icon 视图
LVS_EDITLABELS item可以被编辑。 父窗口必须处理LVN_ENDLABELEDIT消息
LVS_ICON 指定icon视图
LVS_LIST 指定列表视图
LVS_REPORT 定义report view. 使用该属性后总是左对齐。LVCFMT_RIGHT无效, 详见LVCOLUMN设置。
LVS_NOCOLUMNHEADER 列头不显示在报告视图上。(默认的是有列头)
LVS_NOLABELWRAP item文本被显示在单行的icon视图(默认的,item文本和icon捆绑在一起)
LVS_NOSCROLL 无滚动。但与LVS_LIST和LVS_REPORT则无效。
LVS_NOSORTHEADER 点列头不进行任何操作。
LVS_SORTASCENDING ITEM排序基于item text升序
LVS_SORTDESCENDING ..............................减序
LVS_OWNERDATA 用于大数据量的现实。
LVS_OWNERDRAWFIXED 可以paint items 在report view中。list-view control 发送个wm_drawitem消息来画item...
LVS_SHAREIMAGELISTS 控件删除时,image list不删除。这个属性允许 不同的list-view使用同一个Image List.
LVS_SHOWSELALWAYS 总是显示, 甚至控件没有焦点。
LVS_SINGLESEL 一时间只有1个item可以被选中(默认是多选)
LVS_SMALLICON 小图标视图
LVS_TYPEMASK 决定控件当前属性。
LVS_TYPESTYLEMASK
LPDRAWITEMSTRUCT