Delphi XE3を使用して、イメージリストが割り当てられたvsIconモードのリストビュー。
いくつかのアイテムを追加してImageIndexを割り当てましたが、各画像/アイテムの間に非常に大きな間隔/マージンがありますが、どうすれば変更できますか?カスタム描画なしでそれはまったく可能ですか?
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);