CListCtrl
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的更多相关文章
- MFC中CListCtrl控件的使用方法
定义一个派生类CViewList 派生于CListCtrl 在要包含该控件的类(CView)中定义一个CViewList类型的变量 CViewList m_wndListView; 在CView响应的 ...
- clistctrl失去焦点高亮显示选中行
clistctrl失去焦点高亮显示选中行 响应两个消息 NM_SETFOCUS,NM_KILLFOCUS void CDatabaseParseDlg::OnNMKillfocusListGroup( ...
- MFC实现 自适应操作系统的CListCtrl控件
新建对话框应用程序,删除自动生成的控件后,拖拽一个CListCtrl控件,绑定变量名为:m_listctrl.在对话框初始化成员函数OnInitDialog()中键入以下代码即可实现自适应系统的CLi ...
- 删除CListCtrl中具有某一相同数据的所有行
删除CListCtrl中具有某一相同数据的所有行 ================================== 本文原创,转载请注明出处:http://blog.csdn.net/wlsgzl ...
- 自绘CListCtrl类,重载虚函数DrawItem
//自绘CListCtrl类,重载虚函数DrawItem void CNewListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TOD ...
- CListCtrl使用方法汇总
回顾: 刚刚写完,因为是分期写的,所以最初想好好做一下的文章格式半途而废了~说的也许会有点啰嗦,但是所有的基础用到的技术细节应该都用到了. 如果还有什么疑问,请回复留言,我会尽力解答. 如果有错误,请 ...
- CListCtrl总结.xml
pre{ line-height:1; color:#d1653c; background-color:#000000; font-size:16px;}.sysFunc{color:#566d68; ...
- [转载]CTreeCtrl 和 CListCtrl 控件(VC_MFC)
来源:http://www.cnblogs.com/kzloser/archive/2012/11/23/2783305.html Tree Control 控件(MSDN 链接) 说明: 树形控件是 ...
- clistctrl 虚拟列表
一.什么是虚拟列表控件 虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件.. 二.为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示 ...
随机推荐
- Node.js爬虫数据抓取 -- 问题总结
一 返回的信息提示 Something went wrong request模块请求出现未知错误 其中,所用代码如下(无User-Agent部分) 问题多次派查无果,包括: 1:postman请 ...
- 计数排序 + 线段树优化 --- Codeforces 558E : A Simple Task
E. A Simple Task Problem's Link: http://codeforces.com/problemset/problem/558/E Mean: 给定一个字符串,有q次操作, ...
- PHP+MySql例子
对于熟悉做网站的人来说,要想网站做成动态的,肯定要有数据库的支持,利用特定的脚本连接到数据库,从数据库中提取资料.向数据库中添加资料.删除资料等.这里我通过一个实例来说明如何用php连接到数据库的. ...
- MVC5 + EF6 + Bootstrap3 (11) 排序、搜索、分页
系列教程:MVC5 + EF6 + Bootstrap3 上一节:MVC5 + EF6 + Bootstrap3 (10) 数据查询页面 源码下载:点我下载 我工作的源码:http://www.jin ...
- 基于吉日嘎底层架构的Web端权限管理操作演示-用户管理
相信博客园的朋友对吉日嘎拉都不陌生,相信很多人也买了他的源码,应用于自己的项目. 但是你有没有过一个困惑? 那就是:没有一个基于网页的权限管理界面. 今天,这一切都不再是问题,我花了3年时间研究学习并 ...
- 不可或缺 Windows Native (1) - C 语言: hello c
[源码下载] 不可或缺 Windows Native (1) - C 语言: hello c 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 在 Windows Sto ...
- linux下导入、导出mysql数据库命令 下载文件到本地
一.下载到本地 yum install lrzsz sz filename 下载 rz filename 上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...
- 从自签名证书导出pfx和cer证书
完整代码: public sealed class DataCertificate { #region 生成证书 /// <summary> /// 根据指定的证书名和makecert全路 ...
- 删除单链表倒数第n个节点
基本问题 如何删除单链表中的倒数第n个节点? 常规解法 先遍历一遍单链表,计算出单链表的长度,然后,从单链表头部删除指定的节点. 代码实现 /** * * Description: 删除单链表倒数第n ...
- MSCRM 2015 新功能(一)
MS官网信息:http://www.microsoft.com/en-us/dynamics/crm-customer-center/what-s-new.aspx MS官网中提到的新功能主要以下几块 ...