マウスが TListView アイテムの上に移動すると、青いアウトラインが表示されます (図を参照)。どうすれば削除できますか?
私が知っている唯一の方法は、すべてのアイテムの描画を手動で行うことです.しかし、おそらくもっと簡単な方法はありますか? HotTrack=False を試してみましたが、役に立ちません :(
マウスが TListView アイテムの上に移動すると、青いアウトラインが表示されます (図を参照)。どうすれば削除できますか?
私が知っている唯一の方法は、すべてのアイテムの描画を手動で行うことです.しかし、おそらくもっと簡単な方法はありますか? HotTrack=False を試してみましたが、役に立ちません :(
その絵は、特別な探検家のテーマによって行われます. SetWindowTheme(Handle, 'explorer', nil)
これはinへの呼び出しによってコントロールに追加されTCustomListView.CreateWnd
ます。デフォルトのテーマを使用すると、ホット トラッキングは得られません。これは、エクスプローラー ウィンドウのテーマを元に戻すことで実現できます。たとえば、インターポーザ クラスでは次のようになります。
type
TListView = class(ComCtrls.TListView)
protected
procedure CreateWnd; override;
end;
....
procedure TListView.CreateWnd;
begin
inherited;
SetWindowTheme(Handle, nil, nil);
end;
もちろん、エクスプローラー テーマが追加する他のすべてのものも失われます。
私が知る限り、エクスプローラー テーマのホット トラッキング ペインティングを抑制できる通知メッセージはありません。