10

我只需要在列表视图中将 2px :) 添加到行高(自定义绘制的进度条现在太窄了)。

有两个很好的答案Change Listview item heighthttp://www.delphipages.com/forum/showthread.php? t=49939 ,但我做不到。

我知道可以使用图像列表,但我已经有 16x16 图像 :)

有谁能够帮助我?我会很感激的。

4

2 回答 2

16

响应CN_MEASUREITEM控制通知消息,如下:

type
  TListView = class(ComCtrls.TListView)
  private
    procedure CNMeasureItem(var Message: TWMMeasureItem); message CN_MEASUREITEM;
  end;

  TForm1 = class(TForm)
    ...

procedure TListView.CNMeasureItem(var Message: TWMMeasureItem);
begin
  inherited;
  Inc(Message.MeasureItemStruct.itemHeight, 2);
end;

OwnerDraw注意:仅当属性为 true时才会发送此消息。

于 2011-08-15T00:32:20.370 回答
8

无需编写任何代码的快速而肮脏的替代方法是添加一个 TImageList,将其宽度设置为 1,将其高度设置为您希望行高为的任何值,并将其分配给列表视图的 SmallImages。

于 2016-04-30T17:51:28.167 回答