【发布时间】:2011-02-12 22:04:56
【问题描述】:
我已经成功实现了这种在VB 6中使用Win32 API设置树视图背景颜色的方法:http://support.microsoft.com/kb/178491
但是,出了点问题:当您将树节点扩展到两层以上时,内部加号[+] 和减号@987654323 左侧(有时在下面)的区域@ 符号仍然是白色的。
有谁也知道如何使该区域具有正确的背景颜色?
注意:我还设置了每个节点的背景色,以及树视图图像列表的背景色。
这是我的代码版本:
Public Sub TreeView_SetBackgroundColor(TreeView As MSComctlLib.TreeView, BackgroundColor As Long) Dim lStyle As Long,节点为 MSComctlLib.Node 对于 TreeView.Nodes 中的每个节点 Node.BackColor = 背景颜色 下一个 TreeView.ImageList.BackColor = 背景颜色 调用 SendMessage(_ 树视图.hwnd,_ TVM_SETBKCOLOR, _ 0, _ ByVal 背景颜色) '现在重新设置样式,使树线正确显示。 lStyle = GetWindowLong(TreeView.hwnd, GWL_STYLE) 调用 SetWindowLong(TreeView.hwnd, GWL_STYLE, lStyle - TVS_HASLINES) 调用 SetWindowLong(TreeView.hwnd, GWL_STYLE, lStyle) 结束子【问题讨论】:
-
尝试在 TreeView_Expand(Node) 事件上运行上述函数,但这似乎没有任何效果。
-
一个不受欢迎的解决方案是设置 TreeView.Style = tvwPictureText。这使得白框消失了,加号/减号和虚线也消失了。所以除了双击它们之外,没有办法展开/折叠树视图项目。