ListView项目和子项目混淆

时间:2015-05-10 13:06:32

标签: c winapi

我发现很难理解ListView项和Subitems之间的区别。第一列中的条目是否称为Items,而其余列中的条目是否称为Subitems?如果是这样,那么这种区别何时变得相关?

1 个答案:

答案 0 :(得分:1)

子项仅在某些列表视图模式下可见。报告模式显示所有子项目,而Tiles和Content仅显示其中一些子项目。

没有“父”/主要项目,子项目就不可能存在。您可以使用LVM_INSERTITEM创建项目,但只需使用LVM_SETITEMTEXT即可创建子项目。其他项目属性(如lParamiIndent)仅适用于主项目,在第一个通用控件版本中,您只能为主项目设置图像。

我建议您将分配和检索项目文本缓冲区的细节抽象为辅助函数。类似TCHAR* LVAllocAndGetItemText(HWND hLV, int ItemIndex, int SubItem = 0);的内容,大多数其他listview交互通常不够通用或只适用于主项(iSubItem = 0)。