Windows图形界面(GUI)-MFC-C/C++ - 列表视图(List Control) - CListCtrl

目录

[列表视图(List Control) - CListCtrl](#列表视图(List Control) - CListCtrl)

创建列表视图

设置列表视图属性

成员函数

注意事项

示例代码


列表视图(List Control) - CListCtrl

创建列表视图
  • 在对话框编辑器中,从工具箱中拖拽一个List Control到对话框资源。在类向导中为List Control添加变量,类型为CListCtrl
设置列表视图属性
  • 在对话框的属性窗口中,可以设置List Control的各种属性,如视图模式(View)、列标题(Column Headers)等。

  • 视图模式:大图标、小图标、列表、详细信息。

  • 列标题:设置列的标题和宽度。

成员函数
  • InsertColumn:插入新列。

  • DeleteColumn:删除指定列。

  • SetColumnWidth:设置列的宽度。

  • InsertItem:插入新行。

  • DeleteItem:删除指定行。

  • DeleteAllItems:删除所有行。

  • SetItemText:设置指定行和列的文本。

  • GetItemText:获取指定行和列的文本。

  • SetItemState:设置指定行的状态。

  • etItemState:获取指定行的状态。

  • SetItemImage:设置指定行的图像。

  • GetItemImage:获取指定行的图像索引。

  • SortItems:使用用户提供的比较函数对列表视图进行排序。

  • SetExtendedStyle:设置列表视图的扩展样式。

  • GetExtendedStyle:获取列表视图的扩展样式。

注意事项
  • 确保在创建列表视图之前,父窗口已经创建。

  • 列表视图的父窗口应该是对话框或框架窗口。

  • 列表视图的ID应该在对话框类的消息映射中正确映射。

示例代码
cpp 复制代码
void CMainDlg::OnBnClickedButton1()
{
	// 设置风格
	m_ListView.SetExtendedStyle(m_ListView.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);

	// 添加列
	m_ListView.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 50);
	m_ListView.InsertColumn(1, _T("进程ID"), LVCFMT_LEFT, 80);
	m_ListView.InsertColumn(2, _T("进程名"), LVCFMT_LEFT, 80);
	m_ListView.InsertColumn(3, _T("进程路径"), LVCFMT_LEFT, 200);
}


void CMainDlg::OnBnClickedButton28()
{
	CString strIndex;
	int nItem = m_ListView.InsertItem(m_ListView.GetItemCount(), L" ");
	strIndex.Format(L"%d", nItem + 1);
	m_ListView.SetItemText(nItem, 0, strIndex);
	m_ListView.SetItemText(nItem, 1, _T("1024"));
	m_ListView.SetItemText(nItem, 2, _T("notepad.exe"));
	m_ListView.SetItemText(nItem, 3, _T("C:\\Windows\\System32\\Notepad.exe"));

}

void CMainDlg::OnNMDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	if (pNMItemActivate->iItem != -1)
	{
		CString strIndex = m_ListView.GetItemText(pNMItemActivate->iItem, 3);
		ShellExecute(NULL, NULL, strIndex, NULL, NULL, SW_SHOWDEFAULT);
	}

	*pResult = 0;
}
相关推荐
汉克老师1 分钟前
GESP2026年6月认证C++二级( 第三部分编程题(2、菱形))精讲
c++·找规律·绘制图形·对角线·双重循环
栈溢出了12 分钟前
Redis 消息队列笔记:List 与 Pub/Sub
redis·笔记·list
未来之窗软件服务13 分钟前
计算机考试-C语言 应用题—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟·计算机考试
想你依然心痛13 分钟前
AtomCode在后端开发中的实战体验:Go微服务从零搭建
开发语言·微服务·golang
我是一颗柠檬16 分钟前
【Java项目技术亮点】EXPLAIN深度分析与慢查询治理
android·java·开发语言
luj_176820 分钟前
草酸与烟酸对消化及糖代谢的影响解析
服务器·c语言·开发语言·经验分享·算法
fei_sun25 分钟前
【SystemVerilog】SystemVerilog与C语言的接口
c语言·开发语言
W是笔名36 分钟前
python___容器类型的数据___序列
开发语言·python
☆cwlulu37 分钟前
try-throw-catch异常捕获流程
开发语言·c++
漂亮的摩托42 分钟前
深感一无所长,准备试着从零开始写个富文本编辑器
开发语言·php