MFC里面的重要控件CListCtrl 对象
外观有四种模式
1 图标(Icon)
2 小图标(Small Icon)
3 列表(List)
4 报表(Report)
如何修改他的模式呢 ? 在视图哪里选择 属性-> View->Report
CListCtrl 对象的可以使用的函数
GetBkColor 获取背景颜色
SetBkColor 设置背景颜色
GetImageList 获取列表图像
SetImageList 设置列表图像
GetItemCount 获取ltem个数
Getltem 获取ltem属性
Setltem 设置ltem属性
GetCallbackMask 获取Mask
SetCallbackMask 设置Mask
GetNextItem 获取下一个Item
GetFirstSelectedItemPosition 获取首选项
GetNextSelectedItem 转换为int
GetItemRect 获取Item矩形
SetItemPosition 设置 Item 位置
GetItemPosition 获取 Item 位置
GetStringWidth 获取字符串宽带
InsertColumn 插入一个标题拦
GetEditControl 获取输入框
GetColumn 获取标题
SetColumn 设置标题
GetColumnWidth 获取一列的宽度
SetColumnWidth 设置一列的宽度
GetCheck 获取选择
SetCheck 设置选择
GetViewRect 获取矩形
GetTextColor 获取字体颜色
SetTextColor 设置字体颜色
GetTextBkColor 获取字体背景颜色
SetTextBkColor 设置字体背景颜色
GetTopIndex 获取顶部下标 不会用
GetCountPerPage 获取当前显示最大行
GetOrigin 获取起源 不会用。
SetItemState 设置ltem状态
GetItemState 获取ltem状态
GetItemText 获取ltem内容
SetItemText 设置ltem内容
SetItemCount 设置他的个数
SetItemData 获取与某项相关的应用所指定的值
GetItemData 设置项的应用指定的值
GetSelectedCount 获取选中的数量
SetColumnOrderArray 设置列表视图控件的列序(左或右)
GetColumnOrderArray 获取列表视图控件的列序(左或右)
SetIconSpacing 图标间距值
GetHeaderCtrl 获取头
GetHotCursor 获取在热调试对列表视图控件有效时使用的游标
SetHotCursor 设置在热调试对列表视图控件有效时使用的游标
GetSubItemRect 获取列表视图控件中某项的有界矩形
GetHotItem 获取当前在游标下的列表视图项
SetHotItem 设置列表视图控件的当前热项
GetSelectionMark 获取选中的位置
SetSelectionMark 设置选择
GetExtendedStyle 获取扩展风格
SetExtendedStyle 设置扩展风格
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 为指定的项构造一个拖动图象列表
CListCtrl 函数使用
GetBkColor 获取背景颜色
COLORREF cr = m_list.GetBkColor();
COLORREF 是什么类型
COLORREF
->DWORD -> unsigned long 实际上就是保存一个 RGB的值
获取到的数是16711680 why? 查了一下资料才发现是RGB(255,255,255) 为什么会是这样的呢?
RGB函数计算公式: 颜色值 = (65536 * Blue) + (256 * Green) + (Red)
SetBkColor 设置背景颜色
需要设置COLORREF类型的变量 但是我懒得计算或者不会计算怎么办?
m_list.SetBkColor(RGB(255, 0, 255))
GetImageList 获取列表图像
CImageList *Imagelist = m_list.GetImageList(LVSIL_NORMAL);
首先设置里面有三个选项
LVSIL_NORMAL 一般的图标
LVSIL_SMALL 小图标
LVSIL_STATE大图标
CImageList 开单张来讲
SetImageList 设置列表图像
m_list.SetImageList(Imagelist, LVSIL_SMALL);
传递一个需要设置的
CImageList
LVSIL_SMALL 需要给什么类型图标设置
GetItemCount 获取ltem个数
int nCount = m_list.GetItemCount();
Getltem获取ltem属性
Setltem设置ltem属性
//修改某行某列的信息
LVITEMW item = { 0 };
if (m_list.GetItem(&item))
{
item.mask = LVIF_TEXT;
item.iItem = m_list.GetItemCount()-1;//设置多少行
item.iSubItem = 1;//第多少列
item.pszText = L"第八列"; //显示的内容
item.cchTextMax = MAX_PATH;
m_list.SetItem(&item);
}
GetFirstSelectedItemPosition 获取首选项
GetNextSelectedItem 转换为int
POSITION pos = m_list.GetFirstSelectedItemPosition();//获取点击的首位pos
if (pos == NULL)
TRACE0("No items were selected!\n");//在输出显示
else
{
while (pos)
{
int nItem = m_list.GetNextSelectedItem(pos);//转换为 int
TRACE1("Item %d was selected!\n", nItem);
}
}
GetItemRect
RECT rect;
m_list.GetItemRect(1, &rect, LVIR_LABEL);
LVIR_BOUNDS 返回整个项目的边界矩形, 包括图标和标签。
LVIR_ICON 返回的边界矩形图标或小图标
LVIR_LABEL 返回的项目的边界矩形文本。
ret BOOL
GetStringWidth 获取字符串宽带
InsertColumn 插入一个标题拦
CString str(L"color");
int width = 3 * m_list.GetStringWidth(str) / 2;
m_list.InsertColumn(0, //插入位置 pos
str,//插入内容
LVCFMT_LEFT, //插入的属性
width//宽度
);
GetColumn 获取标题
SetColumn 设置标题
TCHAR strlvc[MAX_PATH]={0};
ZeroMemory(&lvc, sizeof(lvc));
LVCOLUMN lvc;
lvc.mask = LVCF_TEXT;
lvc.pszText = strlvc; //显示的内容
lvc.cchTextMax = MAX_PATH;
if (m_list.GetColumn(0, &lvc))
{
lvc.pszText = L"color";
m_list.SetColumn(0, &lvc);
}
GetColumnWidth
SetColumnWidth 设置一列的宽度
TCHAR strlvc[MAX_PATH] = { 0 };
LVCOLUMN lvc;
ZeroMemory(&lvc, sizeof(lvc));
lvc.mask = LVCF_TEXT;
lvc.pszText = strlvc; //显示的内容
lvc.cchTextMax = MAX_PATH;
if (m_list.GetColumn(0, &lvc))
{
int width= m_list.GetStringWidth(strlvc) * 3 / 2;
m_list.SetColumnWidth(0, width);
}
GetCheck 获取选择
SetCheck 全部选择
m_list.SetExtendedStyle(LVS_EX_CHECKBOXES); 必须设置的
CString str;
for (int i = 0; i < m_list.GetItemCount(); i++)
{
m_list.SetCheck(i);
}
GetItemState 删除选中状态
DeletItem
int nCount = m_list.GetItemCount();
for (int i = nCount - 1; i >= 0; --i)
{
if (m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)
{
m_list.DeleteItem(i);
break;
}
}