title: TTreeView - Change Expand and Collapse Image?
body: <p>Is it possible using the standard TTreeView to change the Expand and Collapse Image?</p>
  
  <p>I don't mean Node images, I mean the little arrows next to Nodes that have children, like so:</p>
  
  <p><img src="https://i.stack.imgur.com/fme3k.png" alt="enter image description here"></p>
  
  <p>Ideally I would like the arrows to show as + and - Symbols, like the Delphi component structure tree:</p>
  
  <p><img src="https://i.stack.imgur.com/pVpFG.png" alt="enter image description here"></p>
  
  <p>If it is possible to change this, how would I go about doing it?</p>
  
  <p><strong>Working Demo based on David's Answer</strong></p>
  
  <pre><code>unit Unit1;
  
  interface
  
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ComCtrls, Themes, uxTheme;
  
  type
    TForm1 = class(TForm)
      procedure FormCreate(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
  
  type
    TMyTreeView = class(TTreeView)
    protected
      procedure CreateWnd; override;
    end;
  
  var
    Form1: TForm1;
  
  implementation
  
  {$R *.dfm}
  
  { TMyTreeView }
  
  procedure TMyTreeView.CreateWnd;
  begin
    inherited;
    if ThemeServices.Enabled and CheckWin32Version(6, 0) then
      SetWindowTheme(Handle, nil, nil);
  end;
  
  procedure TForm1.FormCreate(Sender: TObject);
  var
    MyTree: TMyTreeView;
    Node: TTreeNode;
  begin
    MyTree := TMyTreeView.Create(nil);
    with MyTree do
    begin
      Parent  := Self;
      Height  := 100;
      Width   := 100;
      Left    := 30;
      Top     := 30;
  
      Node := Items.Add(nil, 'Item');
      Items.AddChild(Node, 'Item');
      Node := Items.AddChild(Node, 'Item');
      Items.AddChild(Node, 'Item');
    end;
  end;
  
  end.
  </code></pre>
  
  <p>The Result:</p>
  
  <p><img src="https://i.stack.imgur.com/DUaPH.png" alt="enter image description here"></p>