Windows图形界面(GUI)-DLG-C/C++ - 列表视图(ListView)

目录

列表视图(ListView)

控件类型

初始化控件环境

示例代码


列表视图(ListView)

控件类型
  • 详细信息视图(Report View):数据以列的形式显示,每个项目可以有多个属性或字段。

  • 图标视图(Icon View):数据以图标的形式显示,通常用于文件和文件夹等对象。

初始化控件环境
  • 包含公共控件的头文件

    #include <commctrl.h>
    #pragma comment(lib, "comctl32.lib")

  • 调用InitCommonControlsEx函数

示例代码
cpp 复制代码
	case WM_INITDIALOG:
	{
		// 初始环境
		INITCOMMONCONTROLSEX initComm = { 0 };
		initComm.dwSize = sizeof(INITCOMMONCONTROLSEX);
		initComm.dwICC = ICC_WIN95_CLASSES;
		InitCommonControlsEx(&initComm);

		// 初始控件	
		HWND hListView = GetDlgItem(hwnd, IDC_LIST5);
		ListView_SetExtendedListViewStyle(hListView, ListView_GetExtendedListViewStyle(hListView) | LVS_EX_FULLROWSELECT);
		
		LVCOLUMN lvc = { 0 };
		lvc.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
		lvc.pszText = (LPWSTR)TEXT("进程标识");
		lvc.cx = 150;
		lvc.iSubItem = 0;
		ListView_InsertColumn(hListView, 0, &lvc);

		lvc.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
		lvc.pszText = (LPWSTR)TEXT("进程文件");
		lvc.cx = 150;
		lvc.iSubItem = 1;
		ListView_InsertColumn(hListView, 1, &lvc);

		LVITEM lvi = { 0 };
		lvi.mask = LVIF_TEXT;
		lvi.iItem = 0;
		lvi.iSubItem = 0;
		lvi.pszText = (LPWSTR)TEXT("1024");
		ListView_InsertItem(hListView, &lvi);
		ListView_SetItemText(hListView, 0, 1, (LPWSTR)TEXT("C:\\Windows\\System32\\notepad.exe"));

		lvi.mask = LVIF_TEXT;
		lvi.iItem = 1;
		lvi.iSubItem = 0;
		lvi.pszText = (LPWSTR)TEXT("2048");
		ListView_InsertItem(hListView, &lvi);
		ListView_SetItemText(hListView, 1, 1, (LPWSTR)TEXT("C:\\Windows\\System32\\calc.exe"));

		return TRUE;
	}

	case WM_NOTIFY:
	{
		NMHDR* Info = (NMHDR*)lParam;

		switch (Info->idFrom)
		{
			case IDC_LIST5:
			{
				if (Info->code == NM_CLICK)
				{
					INT nIndex = ListView_GetNextItem(Info->hwndFrom, -1, LVNI_SELECTED);
					TCHAR szBuffer[0xFF] = { 0 };
					ListView_GetItemText(Info->hwndFrom, nIndex, 0, szBuffer, 0xFF);
					OutputDebugString(szBuffer);
				}
			}
		}

		return TRUE;
	}
相关推荐
小努蛋7 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty
qz_Serene7 小时前
C++:类和对象(上)
开发语言·c++
西安景驰电子8 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
ctlover8 小时前
Python文件操作
开发语言·python
luj_17688 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
wuyk5558 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
郝学胜-神的一滴9 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
WangY_ZQ9 小时前
【无标题】
windows·python
hetao17338379 小时前
2026-08-09~08-14 hetao1733837 的刷题记录
c++·算法
weixin_383196479 小时前
java基础面试题@Autowired和@Resource区别
java·开发语言