VS之listview使用

本文详述了在VS2008环境下,使用C++开发ListView控件的过程,涵盖从新建单文档程序到设置属性、更新数据、背景效果、双击及右击事件响应的全部步骤,并提供了相关源码下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文简单地介绍下VS的listview使用:包括属性设置、背景设置、双击事件、右键弹出菜单等。

使用工具:VS2008

使用语言:C++

开发步骤:

1.新建单文档程序,View派生于ListView

2.添加菜单资源


3.设置属性

void CListViewDemoView::OnInitialUpdate()
{
	CListView::OnInitialUpdate();


	// TODO: 调用 GetListCtrl() 直接访问 ListView 的列表控件,
	//  从而可以用项填充 ListView。
	//属性设置
	CListCtrl& list = GetListCtrl();
	list.ModifyStyle(LVS_TYPEMASK,LVS_REPORT & LVS_TYPEMASK | LVS_SINGLESEL);//important for show
	DWORD dwStyle = list.GetExtendedStyle();
	list.SetExtendedStyle(dwStyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

	CImageList image;
	image.Create(1,20,ILC_COLOR24 | ILC_MASK,4,0);
	list.SetImageList(&image,LVSIL_SMALL);

	CFont font;
	font.CreateFont(
		16,
		0,
		0,
		0,
		FW_NORMAL,
		FALSE,
		FALSE,
		0,
		ANSI_CHARSET,
		OUT_DEFAULT_PRECIS,
		CLIP_DEFAULT_PRECIS,
		DEFAULT_QUALITY,
		DEFAULT_PITCH | FF_SWISS,
		_T("宋体"));
	list.SetFont(&font);
	list.GetHeaderCtrl()->SetFont(&font);

	//菜单
	m_menu.LoadMenu(IDR_MENU1);
	list.SetMenu(&m_menu);

	//标题栏
	list.InsertColumn(0,_T("名称"),LVCFMT_LEFT,150,0);
	list.InsertColumn(1,_T("属性1"),LVCFMT_LEFT,120,0);
	list.InsertColumn(2,_T("属性2"),LVCFMT_LEFT,120,0);

	UpdateList();
}

4.更新数据

void CListViewDemoView::UpdateList(void)
{
	CListCtrl& list = GetListCtrl();
	CString str=_T("");

	//值设置
	for(int i=0; i<5; i++)
	{
		str.Format(_T("name %d"),i);
		list.InsertItem(i,str);
		str.Format(_T("属性1 %d"),i);
		list.SetItemText(i,1,str);
		str.Format(_T("属性2 %d"),i);
		list.SetItemText(i,2,str);
	}
}

5.背景效果

void CListViewDemoView::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;

	LPNMLVCUSTOMDRAW  lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
	int iRow = lp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值