【发布时间】:2025-12-08 00:40:01
【问题描述】:
我目前通过HWND lv = GetDlgItem(hDlg, MY_LISTVIEW) 处理我的列表视图
目前使用ListView_SetItemText(); 填充项目
我想根据已在外部更新的数据更新该列表视图中的每个项目。给定我的句柄,我将如何迭代每个列表视图项?
【问题讨论】:
标签: c++ listview winapi listviewitem win32gui
我目前通过HWND lv = GetDlgItem(hDlg, MY_LISTVIEW) 处理我的列表视图
目前使用ListView_SetItemText(); 填充项目
我想根据已在外部更新的数据更新该列表视图中的每个项目。给定我的句柄,我将如何迭代每个列表视图项?
【问题讨论】:
标签: c++ listview winapi listviewitem win32gui
ListViews 使用从 0 开始的索引来标识项目,因此要对项目进行迭代,只需获取总数,然后运行从 0 开始计数的循环。例如,
int iNumItems = ListView_GetItemCount(lv);
for (int iIndex = 0; iIndex < iNumItems; ++iIndex)
{
// update this item
ListView_SetItemText(lv, iIndex, 0, ...);
}
【讨论】:
SetWindowRedraw() 禁用此功能(关闭重绘,更新所有项目,然后重新打开),有时看起来会更好。