CListCtrl类封装“列表视图控件”功能,显示每个包含图标(列表视图中)和标签的收集。除图标和标签外,每一项还能有显示在图标和标签的右边的列中的信息。此控件(以及CListCtrl类)只适用于运行于Windows 95和Windows NT 3.51及更高版本的程序。
下面是CListCtrl类的主要概况。对于详细的、概念性的讨论,请参阅联机文档“Visual C++程序员指南”中的“使用ClistCtrl”和“控件主题”。
视图
列表视图控件可用四种不同方式显示其内容,称为“视图”。
·图标视图(Icon view)
每一项以全尺寸图标(32×32像素)出现,下面有一个标签。用户可在列表视图窗口拖动项到任意位置。
·小图标 (Small icon view)
视图每一项以小图标(16×16像素)出现,右边有一个标签。用户可在列表视图窗口拖动项到任意位置。
·列表视图 (List view)
每一项以小图标出现,下面有一个标签。项按列排列,不能拖动到列表视图窗口的任何位置
·报表视图 (Report view)
每一项在本行上出现,右边有排列成列的附加信息。最左边的列包含小图标和标签,下一列包含应用指定的子项。嵌入标题控件实现这些列。要了解报表视图标题控件和列的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:给控件添加列(报表视图)”。
控件的当前列表视图风格指定当前视图。要了解这些风格及其用法的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:改变列表控件风格”。
扩展风格
除了标准列表风格,类CListCtrl支持一系列提供丰富功能的扩展风格。此功能的一些示例包括:
·逗留选择
有效时,若光标保持在某项上一段时间,则允许自动选择该项。
·虚列表视图
如果有效,允许控件支持DWORD项。通过把管理应用项数据放在最顶上而成为可能。除了项选择和焦点信息,所有项信息必须由应用管理。要了解更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:虚列表控件”。
·单击或双击激活
如果有效,允许热跟踪(项文本自动高亮显示)和高亮显示项的单击和双击激活。
·拖放列表命令
如果有效,允许拖放列表视图控件中列的记录。只对报表视图有效。
要了解使用新扩展风格的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用CListCtrl:改变列表控件风格”。
项和子项
列表视图控件中的每一项含有一个图标、一个标签、一个当前状态和应用定义值(称为“项数据”)。一个或更多子项还可与每一项联系。一个“子项”是一个字符串,在报表视图中可显示在项图标和标签右边的列里。列表视图控件中的每一项都必须与子项数目相同。
类CListCtrl提供一些函数来插入、删除、查找和更改这些项。要了解更多信息,请参阅“Visual C++程序员指南”中的“使用CListCtrl:列表控件中的滚动、排列、排序和查找”。同时请参阅CListCtrl::GetItem,CListCtrl::InsertItem和CListCtrl::FindItem。
缺省时,列表视图控件负责存储一个项的图标和文本属性。然而,除了这些项类型外,类CListCtrl支持“回调项”。一个“回调项”是一个列表视图项,每个应用枣而不是控件枣存储文本,图标或两者。回调掩码用于指定哪个项的属性(文本和/或图标)由应用提供。如果应用使用回调项,它必须可以提供按需要提供文本和/或图标属性。回调项在你的应用已有部分这种信息时很有帮助。要了解更多信息,请参阅CListCtrl::GetCallBackMask和“使用CListCtrl:回调项和回调掩码”。
图象列表
图标、标题项图象和应用定义的列表视图项状态包含在一些图象列表中(由类CImageList实现),可创建和指派到列表视图控件中。每个列表视图控件可有四个以上的图象列表类型:
·大图标
在图标视图中使用,得到全尺寸图标。
·小图标
用于小图标、列表和报表视图中,得到图标视图中使用的小版本的图标。
·应用定义的状态
包含状态图象,在项图标旁显示以指示一个应用定义状态。
·标题项
用于在报表视图中,得到出现在每个标题控件项中的小图象。
缺省时,列表视图控件删除指派给它的图象列表(当它删除时);然而,开发者可通过删除由应用定义的不再使用的图象列表。
CListCtrl类的成员
构造函数
ClistCtrl |
构造一个CListCtrl对象 |
Create |
创建列表控件并将其附加给CListCtrl对象 |
属性
GetBkColor |
获取列表视图控件的背景色 |
SetBkColor |
设置列表视图控件的背景色 |
GetImageList |
获取用于绘制列表视图项的图象列表的句柄 |
SetImageList |
指定一个图象列表到列表视图控件 |
GetItemCount |
获取列表视图控件中的项的数量 |
GetItem |
获取列表视图项的属性 |
GetCallbackMask |
获取列表视图控件的回调掩码 |
SetCallbackMask |
设置列表视图控件的回调掩码 |
GetNextItem |
查找指定特性和指定指定项关系的列表视图项 |
GetFirstSeletedItemPosition |
在列表视图控件中获取第一个选择的列表视图项的位置 |
GetNextSeletedItem |
为重复而获取下一个选择的列表视图 |
GetItemRect |
获取项的有界矩形 |
SetItemPosition |
在列表视图控件中移动一项到指定位置 |
GetItemPosition |
获取列表视图项的位置 |
GetStringWidth |
指定需要显示所有指定字符串的最小列宽 |
GetEditControl |
获取用于编辑一个项文本的编辑控件的句柄 |
GetColumn |
获取控件的列的属性 |
SetColumn |
设置列表视图列的属性 |
GetColumnWidth |
获取报表视图或列表视图中的列的宽度 |
SetColumnWidth |
改变报表视图或列表视图中的列的宽度 |
GetCheck |
获取与某项相关的状态图象的当前显示状态 |
SetCheck |
设置与某项相关的状态图象的当前显示状态 |
GetViewRect |
获取列表视图控件中所有项的有界矩形 |
GetTextColor |
获取列表视图控件的文本颜色 |
SetTextColor |
设置列表视图控件的文本颜色 |
GetTextBkColor |
获取列表视图控件的文本背景色 |
SetTextBkColor |
设置列表视图控件的文本背景色 |
GetTopIndex |
获取最高级项的索引 |
GetCountPerPage |
计算可正好垂直放入列表视图控件中的项的数目 |
GetOrigin |
获取列表视图控件的最初的当前视图 |
SetItemState |
改变列表视图控件的项的状态 |
GetItemState |
获取列表视图控件的项的状态 |
GetItemText |
获取列表视图项或子项的文本 |
SetItemText |
设置列表视图项或子项的文本 |
SetItemCount |
准备一个列表视图控件以添加大量的项 |
GetItemData |
获取与某项相关的应用所指定的值 |
SetItemData |
设置项的应用指定的值 |
GetSelectedCount |
获取列表视图控件中选择项的数量 |
SetColumnOrderArray |
设置列表视图控件的列序(左或右) |
GetColumnOrderArray |
获取列表视图控件的列序(左或右) |
SetIconSpacing |
设置列表视图控件中的图标的距离 |
GetHeaderCtrl |
获取列表视图控件的标题控件 |
GetHotCursor |
获取在热调试对列表视图控件有效时使用的游标 |
SetHotCursor |
设置在热调试对列表视图控件有效时使用的游标 |
GetSubItemRect |
获取列表视图控件中某项的有界矩形 |
GetHotItem |
获取当前在游标下的列表视图项 |
SetHotItem |
设置列表视图控件的当前热项 |
GetSelectionMark |
获取列表视图控件的选择屏蔽 |
SetSelectionMark |
设置列表视图控件的选择屏蔽 |
GetExtendedStyle |
获取列表视图控件的当前扩展风格 |
SetExtendedStyle |
设置列表视图控件的当前扩展风格 |
SubItemHitTest |
指定哪个列表视图项在指定位置,若存在 |
GetWorkAreas |
获取列表视图控件的当前工作区 |
GetNumberOfWorkAreas |
获取列表视图控件的当前工作区数量 |
SetItemCountEx |
设置虚列表视图控件的项的数量 |
SetWorkAreas |
设置列表视图控件中图标可以显示的区域 |
ApproximateViewRect |
指定显示列表视图控件项所需的宽度和高度 |
GetBkImage |
获取列表视图控件的当前背景图象 |
SetBkImage |
设置列表视图控件的当前背景图象 |
GetHoverTime |
获取列表视图控件的当前逗留时间 |
SetHoverTime |
设置列表视图控件的当前逗留时间 |
操作
InsertItem |
在列表视图控件中插入一个新项 |
DeleteItem |
从控件中删除一项 |
DeleteAllItems |
从控件中删除所有项 |
FindItem |
查找具有指定的字符的列表视图项 |
SortItems |
使用应用定义的比较函数排序列表视图项 |
HitTest |
指定哪个列表视图在指定的位置上 |
EnsureVisible |
保证项是可见的 |
Scroll |
滚动列表视图控件的内容 |
ReDrawItems |
强迫列表视图控件刷新一些项 |
Update |
强迫控件刷新一个指定的项 |
Arrange |
调整一栏里的项 |
EditLabel |
开始项文本该处编辑 |
InsertColumn |
插入列表视图控件中的新列 |
DeleteColumn |
从列表视图控件中删除一列 |
CreateDragImage |
为指定的项构造一个拖动图象列表 |