将项添加到ListView?

时间:2010-07-10 00:54:51

标签: c++ listview winapi

我在将项目添加到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 个答案:

答案 0 :(得分:9)

来自MSDN

  

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

在使用ListView_SetItem()添加第一列(子项0)后,尝试使用ListView_InsertItem()作为辅助列(子项1和子项2)。

答案 1 :(得分:1)

您是否致电ListView_InsertColumnlink)?在您执行此操作之前,列将不会以“详细信息”模式(圆柱状)显示在ListView中。因此,如果您没有添加任何列,则不会看到任何内容。 (无论你是否使用标题)

答案 2 :(得分:1)

ListView_SetItemText(link)应该用于子项目。

示例代码:

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