现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

CListCtrl类简介和使用技巧

2012-09-08 09:45 工业·编程 ⁄ 共 3912字 ⁄ 字号 暂无评论

    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

为指定的项构造一个拖动图象列表

给我留言

留言无头像?