遗憾的是Delphi2009已经应用了主题服务,并且它始终使用Windows系统主题来绘制滚动条。结果,我无法自定义滚动条颜色。

是否可以在不更改OS系统主题的情况下自定义滚动条颜色?

加成:
Windows主题与我无关,我只是尝试自定义给定控件(如TMemo或TStringGrid等)的滚动条颜色。

谢谢。

最佳答案

明确禁用备忘录的主题将起作用。

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TMemo=Class(StdCtrls.TMemo)
    Procedure CreateWnd;override;
  End;

  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
uses uxTheme;

{$R *.dfm}



{ TMemo }

procedure TMemo.CreateWnd;
begin
  inherited;
   SetWindowTheme(Handle,'','');
end;

end.

10-08 15:53