0

当鼠标移动到 TListView 项目上方时,会出现蓝色轮廓(见图)。我将如何删除它?

我知道的唯一方法是手动绘制所有项目......但也许有更简单的方法?试过 HotTrack=False,没有帮助:(

Item3 有这个蓝色轮廓

4

1 回答 1

3

那幅画是由特殊的探险家主题完成的。通过调用 in 将其添加到控件SetWindowTheme(Handle, 'explorer', nil)TCustomListView.CreateWnd。如果您使用默认主题,那么您将无法获得热跟踪。您可以通过还原资源管理器窗口主题来实现这一点。例如在插入器类中:

type
  TListView = class(ComCtrls.TListView)
  protected
    procedure CreateWnd; override;
  end;
....    
procedure TListView.CreateWnd;
begin
  inherited;
  SetWindowTheme(Handle, nil, nil);
end;

当然,您也会失去资源管理器主题添加的所有其他内容。

据我所知,没有通知消息可以让您抑制资源管理器主题热跟踪绘画。

于 2013-03-01T09:04:15.020 回答