2

我在 Windows 7 上遇到了 VirtualTreeView 组件的问题。我添加了一个TVirtualStringTree并使用OnGetImageIndex事件来分配始终在调试器中非零值的ImageIndex 。

VirtualStringTree 使用带有 16x16 图标的TImageList作为Images属性。

在 Windows XP 上,它可以正常工作,在 Windows 7 上,它与 TImageList 中索引为 0 的图标重叠在普通图标之上。我在 Windows 7 上运行与 XP 相同的程序,因此代码相同,但绘图不同。

这张图说明了这个问题:

虚拟树视图问题

灰色三角形图标的索引为 0,文件夹图标的索引为 5。

这是 VirtualStringTree 中的错误吗?我能以某种方式避免这种情况吗?

我正在使用存储库中最新的 VirtualTreeView 版本。

4

1 回答 1

8

在您的OnGetImageIndex事件处理程序中,请注意Kind: TVTImageKind参数。根据需要分配ImageIndex(通常,这仅用于ikNormalikSelected值),否则分配 -1。

例如,Kind在值为时分配一个有效的图像索引ikOverlay将导致在正常图像上绘制覆盖图像。(这可能与您的问题有关。)

于 2011-11-17T18:24:05.303 回答