一些ListView问题

时间:2009-04-25 21:24:11

标签: winapi listview

ListView控件的文档(使用WinApi)似乎缺少一些基本信息,这里有一些我似乎无法找到解决方案的问题:

  1. 在大多数应用中,当您双击列右侧的边框时,该列会调整为某个默认宽度。我猜想这个宽度是由LVCOLUMN.cxDefault或cxIdeal指定的,但它似乎没有这样做。我错过了什么?

  2. 当您单击某个列以根据列表对列表进行排序时,会在其顶部显示一个指示排序方向的小箭头。如何让它出现?顺便说一下,有人知道ListView使用哪种排序算法吗?

  3. 在报表视图中,是否可以选择整行而不是第一项? (这只是一个视觉的东西,在功能上它是相同的)

  4. 是否可以一次插入多个项目?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

  1. 它是根据该列中每个项目的渲染宽度计算的。
  2. 箭头是程序设置的自定义图像。如果您没有设置图像(通过将图像列表与标题相关联,然后按索引为每个标题项指定图像),那么您不会获得图像。我不知道排序算法是什么,但项目比较算法是你想要的 - 你必须指定一个回调。
  3. 是 - 在控件上设置LVS_EX_FULLROWSELECT扩展样式
  4. 否。但是,您可以在添加多个项目时turn off redraw
  5. 如果您刚开始使用ListView控件,我建议您阅读numerous articles on CodeProject。即使您没有使用MFC(正如许多文章那样),这些概念仍然适用 - 只需将调用转换为等效的PlatformSDK宏。