List Control 粗略使用

3 篇文章 0 订阅

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;
	}
}





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值