自学内容网 自学内容网

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

目录

列表视图(ListView)

控件类型

初始化控件环境

示例代码


列表视图(ListView)

控件类型

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

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

初始化控件环境

  • 包含公共控件的头文件
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")  
  • 调用InitCommonControlsEx函数
示例代码
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;
}

原文地址:https://blog.csdn.net/2301_80612536/article/details/140503705

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!