我发现很难理解 ListView 项目和子项目之间的区别。第一列中的条目是否称为“项目”,而其余列中的条目是否称为“子项目”?如果是这样,那么这种区别何时变得相关?
最佳答案
子项目仅在某些 ListView 模式下可见。报告模式显示所有子项,而平铺和内容仅显示其中部分子项。
如果没有“父项”/主项,子项就不能存在。您使用 LVM_INSERTITEM
创建项目但您只需使用 LVM_SETITEMTEXT
创建子项目。其他项目属性,如 lParam
和iIndent
仅适用于主项目,并且在第一个 commoncontrol 版本中,您只能为主项目设置图像。
我建议您将分配和检索项目文本缓冲区的细节抽象到辅助函数中。类似于TCHAR* LVAllocAndGetItemText(HWND hLV, int ItemIndex, int SubItem = 0);
的东西,大多数其他 ListView 交互通常不够通用或仅适用于主项目 ( iSubItem = 0
)。
关于c - ListView 项目和子项目混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151775/