TListView - 当鼠标悬停在某个项目上时,不要绘制该蓝色矩形。怎么样?

时间:2013-03-01 08:26:25

标签: delphi drawing tlistview custom-draw

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

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

Item3 has this blue outline

1 个答案:

答案 0 :(得分:3)

这幅画是由特殊的探险家主题完成的。通过调用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;

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

据我所知,没有通知消息可以禁止浏览器主题热跟踪绘画。