For Each tNode In tv.nodes
tNode.BackColor = color
Next
Call SendMessage(tv.hwnd, TVM_SETBKCOLOR, 0, ByVal color)用了这样的代码后,看上去背景颜色是改变了,但当设置了树线以后,在每一层的最后一个节点下面还是会显示出白色,就像下面图中一样
http://nkbbs.org/up2/m/0714/UUGBCFCCLVOQSRHRUTTTOIRVOGKBXPCStree.png
请问这个问题如何解决呢?
在VC中就没有这个问题
tNode.BackColor = color
Next
Call SendMessage(tv.hwnd, TVM_SETBKCOLOR, 0, ByVal color)用了这样的代码后,看上去背景颜色是改变了,但当设置了树线以后,在每一层的最后一个节点下面还是会显示出白色,就像下面图中一样
http://nkbbs.org/up2/m/0714/UUGBCFCCLVOQSRHRUTTTOIRVOGKBXPCStree.png
请问这个问题如何解决呢?
在VC中就没有这个问题
用API可以,用属性也行,比如:你可在SendMessage后加上两句
tv.style = tvwTextOnly
tv.style = tvwTreelinesPlusMinusPictureText '原来是什么样式这里恢复
Const TVS_HASLINES As Long = 2
style = GetWindowLong(tv.hwnd, GWL_STYLE)
If style And TVS_HASLINES Then
SetWindowLong tv.hwnd, GWL_STYLE, style - TVS_HASLINES
SetWindowLong tv.hwnd, GWL_STYLE, style
End If
Dim tNode As node
Dim lstyle As Long
For Each tNode In tv.nodes
tNode.BackColor = color
Next
Call SendMessage(tv.hwnd, TVM_SETBKCOLOR, 0, ByVal color)
tv.Style = tvwTextOnly
tv.Style = tvwTreelinesPlusMinusPictureText
我在程序开始后,给树添加完节点后调用这段代码,但问题似旧
比如:
+a
|--b
|--c
|--d这样结束不行,前面会有空白,你需在最后加一个封口Item如:
+a
||--b
||--c
||--d
e