c - ListView 项目和子项目混淆

标签 c winapi

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

最佳答案

子项目仅在某些 ListView 模式下可见。报告模式显示所有子项,而平铺和内容仅显示其中部分子项。

如果没有“父项”/主项,子项就不能存在。您使用 LVM_INSERTITEM 创建项目但您只需使用 LVM_SETITEMTEXT 创建子项目。其他项目属性,如 lParamiIndent仅适用于主项目,并且在第一个 commoncontrol 版本中,您只能为主项目设置图像。

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

关于c - ListView 项目和子项目混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151775/

相关文章:

java - 有没有基于 java 语法和功能的低级编程语言?

c++ - 在 Xcode 中强制头文件编译为 C++

python - 使用 win32gui 列出所有窗口

c++ - 在 Win32 应用程序中复制 DOS 控制台字体 (CP437)

c - 如何将任何文件读入链表?

c - 僵尸进程无法被杀死

c++ - C/C++ : Converting hexadecimal value in char to integer

c++ - 如何知道一个完成数据包是用于 WSASend() 或 WSARecv() 还是 AcceptEx()?

c++ - GDI 与 Direct2D

c++ - 如何用 Python 判断一个文件在 Windows 上是否可执行?