2

使用 Delphi XE3,在分配了图像列表的 vsIcon 模式下的 Listview。

我添加了一些项目并为它们分配了一个 ImageIndex,每个图像/项目之间的间距/边距非常大,我该如何更改?没有自定义图纸有可能吗?

4

1 回答 1

9

你可以使用ListView_SetIconSpacing

uses commctrl;
..
ListView_SetIconSpacing(ListView1.Handle, 36, 36);
ListView1.Arrange(arAlignTop);  // refresh view

请参阅文档,这些值必须包括图标大小,否则图标会相互重叠。

您可以通过为 cx 和 cy 发送“-1”来重置视图,返回值是当前间距,例如,要减少一定量的间距,您可以执行以下操作:

var
  Spacing: DWORD;
begin
  Spacing := ListView_SetIconSpacing(ListView1.Handle, WORD(-1), WORD(-1));
  ListView_SetIconSpacing(ListView1.Handle,
                          LoWord(Spacing) - 10, HiWord(Spacing) - 6);
  ListView1.Arrange(arAlignTop);
于 2012-10-23T23:16:10.960 回答