アプリケーションの Outlook 2013 左ペイン ツリー ビュー メニューをエミュレートしようとしています。シンプルなフォントと背景のプロパティを変更したいだけなので、CustomDraw を使用しています。
ここに私が欲しいものがあります:
ただし、選択されたノードとホット トラックされたノードの両方について、常にデフォルトで選択された図面を取得します。これが通常の動作なのか、OS (Windows 8) に関連するものなのかを確認するための Windows 7 または XP はありません。
ここに私が得ているものがあります:
これが私のコードです:
procedure TMainForm.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Node.Level = 1 then
Sender.Canvas.Font.Size := Sender.Canvas.Font.Size + 2;
if cdsHot in State then
Sender.Canvas.Brush.Color := $00F7E6CD
else if (cdsSelected in State) or (cdsFocused in State) or
(cdsChecked in State) then
Sender.Canvas.Brush.Color := $00F2F2F2
else
Sender.Canvas.Brush.Color := $00DEDEDE;
DefaultDraw := true;
end;
選択したアイテムとホットなアイテムに異なる色の背景を描画するにはどうすればよいですか?