Delphi 如何在TVirtualStringTree中修改焦点框颜色?

Delphi 如何在TVirtualStringTree中修改焦点框颜色?,delphi,virtualtreeview,tvirtualstringtree,Delphi,Virtualtreeview,Tvirtualstringtree,我需要修改TVirtualStringTree的焦点框边框颜色, 就像这张照片: 您无法控制点焦点矩形的颜色。这是通过反转绘制的任何对象的颜色自动确定的。操作系统提供-树控件使用-。(如果需要,可以编辑源代码并用自己的函数替换对DrawFocusRect的调用。) 如果您谈论的是整个节点的颜色,那么首先检查以确保toseBlendedSelectionpaint选项设置为您想要的方式。默认情况下,它处于禁用状态,但由于在项目周围拖动框时,它会使选择矩形看起来很酷,因此您可能在未意识到它对普通选定

我需要修改TVirtualStringTree的焦点框边框颜色, 就像这张照片:


您无法控制点焦点矩形的颜色。这是通过反转绘制的任何对象的颜色自动确定的。操作系统提供-树控件使用-。(如果需要,可以编辑源代码并用自己的函数替换对
DrawFocusRect
的调用。)

如果您谈论的是整个节点的颜色,那么首先检查以确保
toseBlendedSelection
paint选项设置为您想要的方式。默认情况下,它处于禁用状态,但由于在项目周围拖动框时,它会使选择矩形看起来很酷,因此您可能在未意识到它对普通选定节点的作用的情况下将其打开


如果不是这样,则调整树控件的
Colors
属性中的一个值,可能是
FocusedSelectionColor
UnfocusedSelectionColor
。但请不要轻易做出这样的改变;用户已经通过操作系统选项选择了选择颜色,因此您可能不应该更改它。如果您确实使用了不同的颜色,请确保文本相对于您选择的任何新颜色仍然可读。

您可以将treeview的选项
设置为HideFocusRectangle
为true,并在几个绘制事件之一中自己绘制焦点矩形(基本上,在BeforeCellPaint上使用
就足够了).

我说的是点焦点矩形。