CListCtrl

CCmdTarget
    └CListCtrl

CListCtrl类封装“列表视图控件”功能,显示每个包含图标(列表视图中)和标签的收集。除图标和标签外,每一项还能有显示在图标和标签的右边的列中的信息。

视图

列表视图控件可用四种不同方式显示其内容,称为“视图”。

. 图标视图
每一项以全尺寸图标(32×32像素)出现,下面有一个标签。用户可在列表视图窗口拖动项到任意位置。
· 小图标
视图每一项以小图标(16×16像素)出现,右边有一个标签。用户可在列表视图窗口拖动项到任意位置。
· 列表视图
每一项以小图标出现,下面有一个标签。项按列排列,不能拖动到列表视图窗口的任何位置。
· 报表视图
每一项在本行上出现,右边有排列成列的附加信息。最左边的列包含小图标和标签,下一列包含应用指定的子项。嵌入标题控件实现这些列。

扩展风格

除了标准列表风格,类CListCtrl支持一系列提供丰富功能的扩展风格。此功能的一些示例包括:

· 逗留选择
有效时,若光标保持在某项上一段时间,则允许自动选择该项。
· 虚列表视图
如果有效,允许控件支持DWORD项。通过把管理应用项数据放在最顶上而成为可能。除了项选择和焦点信息,所有项信息必须由应用管理。
· 单击或双击激活
如果有效,允许热跟踪(项文本自动高亮显示)和高亮显示项的单击和双击激活。
· 拖放列表命令
如果有效,允许拖放列表视图控件中列的记录。只对报表视图有效。

项和子项

列表视图控件中的每一项含有一个图标、一个标签、一个当前状态和应用定义值(称为“项数据”)。一个或更多子项还可与每一项联系。一个“子项”是一个字符串,在报表视图中可显示在项图标和标签右边的列里。列表视图控件中的每一项都必须与子项数目相同。
类CListCtrl提供一些函数来插入、删除、查找和更改这些项。

请参阅CListCtrl::GetItem,CListCtrl::InsertItem和CListCtrl::FindItem。
缺省时,列表视图控件负责存储一个项的图标和文本属性。然而,除了这些项类型外,类CListCtrl支持“回调项”。一个“回调项”是一个列表视图项,每个应用棗而不是控件棗存储文本,图标或两者。回调掩码用于指定哪个项的属性(文本和/或图标)由应用提供。

如果应用使用回调项,它必须可以提供按需要提供文本和/或图标属性。回调项在你的应用已有部分这种信息时很有帮助。要了解更多信息,请参阅CListCtrl::GetCallBackMask和“使用CListCtrl:回调项和回调掩码”。

图象列表

图标、标题项图象和应用定义的列表视图项状态包含在一些图象列表中(由类CImageList实现),可创建和指派到列表视图控件中。每个列表视图控件可有四个以上的图象列表类型:

· 大图标
在图标视图中使用,得到全尺寸图标。
· 小图标
用于小图标、列表和报表视图中,得到图标视图中使用的小版本的图标。
· 应用定义的状态
包含状态图象,在项图标旁显示以指示一个应用定义状态。
· 标题项
用于在报表视图中,得到出现在每个标题控件项中的小图象。

缺省时,列表视图控件删除指派给它的图象列表(当它删除时);然而,开发者可通过删除由应用定义的不再使用的图象列表。要了解更多信息,请参阅联机文档“Visual
C++程序员指南”中的“使用CListCtrl:列表项和图象列表”。
#include <afxcmn.h>

请参阅: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 为指定的项构造一个拖动图象列表

可覆盖的函数

DrawItem 当自绘制控件的可视部分改变时被调用 

CListCtrl的更多相关文章

  1. MFC中CListCtrl控件的使用方法

    定义一个派生类CViewList 派生于CListCtrl 在要包含该控件的类(CView)中定义一个CViewList类型的变量 CViewList m_wndListView; 在CView响应的 ...

  2. clistctrl失去焦点高亮显示选中行

    clistctrl失去焦点高亮显示选中行 响应两个消息 NM_SETFOCUS,NM_KILLFOCUS void CDatabaseParseDlg::OnNMKillfocusListGroup( ...

  3. MFC实现 自适应操作系统的CListCtrl控件

    新建对话框应用程序,删除自动生成的控件后,拖拽一个CListCtrl控件,绑定变量名为:m_listctrl.在对话框初始化成员函数OnInitDialog()中键入以下代码即可实现自适应系统的CLi ...

  4. 删除CListCtrl中具有某一相同数据的所有行

    删除CListCtrl中具有某一相同数据的所有行 ================================== 本文原创,转载请注明出处:http://blog.csdn.net/wlsgzl ...

  5. 自绘CListCtrl类,重载虚函数DrawItem

    //自绘CListCtrl类,重载虚函数DrawItem void CNewListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TOD ...

  6. CListCtrl使用方法汇总

    回顾: 刚刚写完,因为是分期写的,所以最初想好好做一下的文章格式半途而废了~说的也许会有点啰嗦,但是所有的基础用到的技术细节应该都用到了. 如果还有什么疑问,请回复留言,我会尽力解答. 如果有错误,请 ...

  7. CListCtrl总结.xml

    pre{ line-height:1; color:#d1653c; background-color:#000000; font-size:16px;}.sysFunc{color:#566d68; ...

  8. [转载]CTreeCtrl 和 CListCtrl 控件(VC_MFC)

    来源:http://www.cnblogs.com/kzloser/archive/2012/11/23/2783305.html Tree Control 控件(MSDN 链接) 说明: 树形控件是 ...

  9. clistctrl 虚拟列表

    一.什么是虚拟列表控件 虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件.. 二.为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示 ...

随机推荐

  1. 剑指offer面试题30:最小的k个数

    一.题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 二.解题思路 1.思路1 首先对数组进行排序,然后取出前k个数 ...

  2. Python入门笔记(10):字典

    一.映射类型 我理解中的映射类型是:键值对的关系,键(key)映射值(value),且它们是一对多的关系.字典是Python唯一的映射类型. 扩展1:哈希表一种数据结构,值是根据相关的键进行数据存储的 ...

  3. Winfrom中ListBox绑定List数据源更新问题

    Winfrom中ListBox绑定List数据源更新问题 摘自:http://xiaocai.info/2010/09/winform-listbox-datasource-update/ Winfr ...

  4. 使用EasyUI的插件前需要引入的文件

    一.使用EasyUI的插件需要引入一些文件 1.引入相关文件 easyui.css: easyUi的样式文件 icon.css:easyUI的图标样式文件 easyui.min.js:easyUi的类 ...

  5. A -- HDU 4585 Shaolin

    Shaolin Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %I64d , %I64u Java clas ...

  6. ahjesus用forever管理nodejs服务

    全局安装forever npm install -g forever 查看帮助 forever -h 查看安装位置 whereis forever 编写自己的sh文件 forever -p web文件 ...

  7. jquery TypeError: 'undefined' is not a function (evaluating 'elem.nodeName.toLowerCase()') [jquery.js:1904]错误原因

    今天,某个环境报了个js错误,TypeError: 'undefined' is not a function (evaluating 'elem.nodeName.toLowerCase()') [ ...

  8. NYOJ 21 三个水杯

    三个水杯 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子.三个水杯之间相互倒水,并且水杯没有 ...

  9. C# Sqlite 序列

    sqlite 不能直接创建自定义函数,不能像 sql server中那样方便创建并使用.不过我们照样可以创建它,创建成功后,我们照样可以随心所欲(比如批量更新等) 序列是一个数据库中很常用的操作,在其 ...

  10. c#多线程生产者消费者(手稿)

    屋舍简陋,隔壁的娃娃哭了一晚,心中无恶意纯中性的想,有病就赶紧带孩子去看医生吧,能哭这么久估计孩子真的不舒服.