虚拟树视图(C++ Builder)2图标在Windows 7上重叠,但在XP上不重叠

Cod*_*345 2 delphi c++builder virtualtreeview

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

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

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

此图片说明了问题:

virtualtreeview问题http://i42.tinypic.com/6sb8ko.jpg

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

这是VirtualStringTree中的错误吗?我可以以某种方式避免这个吗?

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

Ond*_*lle 8

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

例如,在Kind具有值的情况下指定有效图像索引ikOverlay将导致在正常图像上绘制叠加图像.(这可能与您的问题有关.)