向ListView添加项目?

5
我在向ListView控件中添加项目时遇到了问题。当我尝试向ListView添加项目时,什么也没有发生。我之前使用的代码无效。
我有3列,并且SubItem值设置为1、2和3。
   LVITEM item;
   item.mask = LVIF_TEXT;
   item.cchTextMax = 6;

   item.iSubItem = 1;
   item.pszText = TEXT("12345");
   item.iItem = 0;
   ListView_InsertItem(hListView, &item);

   item.iSubItem = 2; // zero based index of column
   item.pszText = TEXT("23456");
   ListView_InsertItem(hListView, &item);

   item.iSubItem = 3; // zero based index of column
   item.pszText = TEXT("34567");
   ListView_InsertItem(hListView, &item);
3个回答

9

来自MSDN:

您不能使用ListView_InsertItem或LVM_INSERTITEM插入子项。 LVITEM结构体的iSubItem成员必须为零。请参见LVM_SETITEM以获取有关设置子项的信息。

在使用ListView_InsertItem()添加第一列(子项0)后,尝试使用ListView_SetItem()处理次要列(子项1和2)。


3

对于子项,应使用 ListView_SetItemText (链接)。

示例代码:

ListView_SetItemText(hListView, 0, 1, TEXT("12345"));
ListView_SetItemText(hListView, 0, 2, TEXT("23456"));
ListView_SetItemText(hListView, 0, 3, TEXT("34567"));

1
你是否调用了 ListView_InsertColumn (link) 函数?在“详细信息”模式下(列出多个项目的模式),ListView 中的列不会显示,除非你这样做。因此,如果你没有添加任何列,你将看不到任何内容。(无论你是否使用标题)

我已经添加了该列,但由于某种原因,没有任何内容显示出来。不管怎样,代码自己修复了。 - Neal P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接