Я успешно реализовал этот метод использования Win32 API для установки цвета фона дерева в VB 6: http://support.microsoft.com/kb/178491
Однако одна вещь идет не так : когда вы расширяете узлы дерева более чем на два уровня глубиной, область слева (а иногда и под) внутреннего плюс + 1006 * и минус [-]
знаки все еще белые .
Кто-нибудь знает, как перевести эту область в правильный цвет фона?
Примечание: я также устанавливаю BackColor каждого узла, а также BackColor списка изображений дерева.
Вот моя версия кода:
Public Sub TreeView_SetBackgroundColor(TreeView As MSComctlLib.TreeView, BackgroundColor As Long)
Dim lStyle As Long, Node As MSComctlLib.Node
For Each Node In TreeView.Nodes
Node.BackColor = BackgroundColor
Next
TreeView.ImageList.BackColor = BackgroundColor
Call SendMessage( _
TreeView.hwnd, _
TVM_SETBKCOLOR, _
0, _
ByVal BackgroundColor)
'Now reset the style so that the tree lines appear properly.
lStyle = GetWindowLong(TreeView.hwnd, GWL_STYLE)
Call SetWindowLong(TreeView.hwnd, GWL_STYLE, lStyle - TVS_HASLINES)
Call SetWindowLong(TreeView.hwnd, GWL_STYLE, lStyle)
End Sub