2

Delphi XE3を使用して、イメージリストが割り当てられたvsIconモードのリストビュー。

いくつかのアイテムを追加して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 に答える