如何在Delphi ListView上关闭hottracking?

Zdr*_*nev 2 windows delphi winapi

我在表单上有一个简单的ListView,我想完全关闭hottracking.HotTracking属性设置为False,但在鼠标光标下的项目上仍然有一个蓝色矩形...

Delphi XE3,Windows 7

Dav*_*nan 5

该矩形是资源管理器主题的一部分.资源管理器主题是可选的,列表视图类选择使用它并CreateWnd通过调用将其强加于其中SetWindowTheme.您可以通过调用SetWindowTheme撤消更改来覆盖该行为.

使用插入器类的示例:

uses
  Vcl.ComCtrls, Winapi.UxTheme;

type
  TListView = class(Vcl.ComCtrls.TListView)
  protected
    procedure CreateWnd; override;
  end;

procedure TListView.CreateWnd;
begin
  inherited;
  SetWindowTheme(WindowHandle, nil, nil);
end;
Run Code Online (Sandbox Code Playgroud)