在vsicon模式下使用Delphi XE3,Listview并指定了imagelist.
我添加一些项目并为它们分配一个ImageIndex,每个图像/项目之间有一个非常大的间距/边距,我该如何改变它?没有定制绘图可以吗?
你可以使用ListView_SetIconSpacing宏
uses commctrl;
..
ListView_SetIconSpacing(ListView1.Handle, 36, 36);
ListView1.Arrange(arAlignTop); // refresh view
Run Code Online (Sandbox Code Playgroud)
请参阅文档,值必须包含图标大小,否则图标会相互重叠.
您可以通过为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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1784 次 |
| 最近记录: |