TreeView问题 请教大家我把TreeView的背景颜色改变了,但是那节点的颜色怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 '****** Project1.vbp ************** Type=Exe Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\stdole2.tlb#OLE Automation Form=frmMain.frm Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX Module=modAPI; modAPI.bas Startup="frmMain" Command32="" Name="Project1" HelpContextID="0" CompatibleMode="0" MajorVer=1 MinorVer=0 RevisionVer=0 AutoIncrementVer=0 ServerSupportFiles=0 VersionCompanyName="None" CompilationType=0 OptimizationType=0 FavorPentiumPro(tm)=0 CodeViewDebugInfo=0 NoAliasing=0 BoundsCheck=0 OverflowCheck=0 FlPointCheck=0 FDIVCheck=0 UnroundedFP=0 StartMode=0 Unattended=0 ThreadPerObject=0 MaxNumberOfThreads=1 '************************* '********** frmMain.frm ************ VERSION 5.00 Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX" Begin VB.Form frmMain Caption = "Form1" ClientHeight = 5460 ClientLeft = 60 ClientTop = 345 ClientWidth = 6780 LinkTopic = "Form1" ScaleHeight = 5460 ScaleWidth = 6780 StartUpPosition = 3 'Windows Default Begin VB.CommandButton cmdAddNode Caption = "cmdAddNode" Height = 480 Left = 2280 TabIndex = 2 Top = 4815 Width = 2160 End Begin MSComctlLib.TreeView TV1 CausesValidation= 0 'False Height = 4035 Left = 15 TabIndex = 0 Top = -15 Width = 6735 _ExtentX = 11880 _ExtentY = 7117 _Version = 393217 Indentation = 441 LabelEdit = 1 Style = 7 BorderStyle = 1 Appearance = 1 End Begin VB.Label Label1 Caption = $"frmMain.frx":0000 Height = 570 Left = 90 TabIndex = 1 Top = 4080 Width = 6540 End End Attribute VB_Name = "frmMain" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Private Const TV_FIRST = &H1100 Private Const TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37) Private Const TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38) Private Const GWL_STYLE = -16& Private Const TVM_SETBKCOLOR = 4381& Private Const TVM_GETBKCOLOR = 4383& Private Const TVS_HASLINES = 2& Dim lngBackColor As Long ' desired backgroundcolor (light yellow) Dim TmpNode As Node ' used for adding nodes Private Sub Form_Load() lngBackColor = &HE0F8FE ' light yellow color like the tooltip Call SendMessage(TV1.hWnd, _ TVM_SETBKCOLOR, _ 0, _ ByVal lngBackColor) 'Change the background color Call SendMessage(TV1.hWnd, _ TVM_SETINSERTMARKCOLOR, _ 0, _ ByVal lngBackColor) 'Change ????? ' Now reset the style so that the tree lines appear properly ' -> according to MSDN and others Dim lngstyle As Long lngstyle = GetWindowLong(TV1.hWnd, GWL_STYLE) Call SetWindowLong(TV1.hWnd, _ GWL_STYLE, _ lngstyle - TVS_HASLINES) Call SetWindowLong(TV1.hWnd, GWL_STYLE, lngstyle) ' Populate the treeview with root and two nodes With TV1 .Nodes.Clear ' add root node Set TmpNode = .Nodes.Add(, , "root", "My Treeview") TmpNode.BackColor = lngBackColor ' add first childnode Set TmpNode = .Nodes.Add("root", tvwChild, "id1", "Line 1") TmpNode.BackColor = lngBackColor ' add second childnode Set TmpNode = .Nodes.Add("root", tvwChild, "id2", "Line 2") TmpNode.BackColor = lngBackColor ' collapse tree .Nodes(1).Selected = True .Nodes(2).EnsureVisible End With End Sub Private Sub cmdAddNode_Click() ' add two nodes to the treeview Dim TmpNode As Node Set TmpNode = TV1.Nodes.Add("id1", tvwChild, "id" & TV1.Nodes.Count + 1, "Line " & TV1.Nodes.Count) TmpNode.BackColor = lngBackColor TmpNode.EnsureVisible Set TmpNode = TV1.Nodes.Add("id2", tvwChild, "id" & TV1.Nodes.Count + 1, "Line " & TV1.Nodes.Count) TmpNode.BackColor = lngBackColor TmpNode.EnsureVisible End Sub '********************** '********* modAPI.bas ********** Attribute VB_Name = "modAPI" Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long 如何用VB实现“返回上一步操作”的功能 有关vb扫描,存入数据库,存入指定文件夹 怪怪怪!!! VB6许可证补丁下载VB6滚轮补丁下载 Rectangle画出来的矩形有时候怎么没闭合的呀?? 关于Printer的问题! 如果获取存储过程的返回值(求救) 关于dll的参数传递问题,请大侠解救 MS SQL问题向高手求教!!!!在线等候!! 如何在MSFlexGrid控件中进行编辑功能? 怎能通过adodc删除access数据库某个表的内容? 如何使LABEL控件水平移动?
Type=Exe
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\stdole2.tlb#OLE Automation
Form=frmMain.frm
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Module=modAPI; modAPI.bas
Startup="frmMain"
Command32=""
Name="Project1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="None"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1
'*************************
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form frmMain
Caption = "Form1"
ClientHeight = 5460
ClientLeft = 60
ClientTop = 345
ClientWidth = 6780
LinkTopic = "Form1"
ScaleHeight = 5460
ScaleWidth = 6780
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton cmdAddNode
Caption = "cmdAddNode"
Height = 480
Left = 2280
TabIndex = 2
Top = 4815
Width = 2160
End
Begin MSComctlLib.TreeView TV1
CausesValidation= 0 'False
Height = 4035
Left = 15
TabIndex = 0
Top = -15
Width = 6735
_ExtentX = 11880
_ExtentY = 7117
_Version = 393217
Indentation = 441
LabelEdit = 1
Style = 7
BorderStyle = 1
Appearance = 1
End
Begin VB.Label Label1
Caption = $"frmMain.frx":0000
Height = 570
Left = 90
TabIndex = 1
Top = 4080
Width = 6540
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Const TV_FIRST = &H1100
Private Const TVM_SETINSERTMARKCOLOR = (TV_FIRST + 37)
Private Const TVM_GETINSERTMARKCOLOR = (TV_FIRST + 38)
Private Const GWL_STYLE = -16&
Private Const TVM_SETBKCOLOR = 4381&
Private Const TVM_GETBKCOLOR = 4383&
Private Const TVS_HASLINES = 2&
Dim lngBackColor As Long ' desired backgroundcolor (light yellow)
Dim TmpNode As Node ' used for adding nodes
Private Sub Form_Load()
lngBackColor = &HE0F8FE ' light yellow color like the tooltip
Call SendMessage(TV1.hWnd, _
TVM_SETBKCOLOR, _
0, _
ByVal lngBackColor) 'Change the background color
Call SendMessage(TV1.hWnd, _
TVM_SETINSERTMARKCOLOR, _
0, _
ByVal lngBackColor) 'Change ?????
' Now reset the style so that the tree lines appear properly
' -> according to MSDN and others
Dim lngstyle As Long
lngstyle = GetWindowLong(TV1.hWnd, GWL_STYLE)
Call SetWindowLong(TV1.hWnd, _
GWL_STYLE, _
lngstyle - TVS_HASLINES)
Call SetWindowLong(TV1.hWnd, GWL_STYLE, lngstyle)
' Populate the treeview with root and two nodes
With TV1
.Nodes.Clear
' add root node
Set TmpNode = .Nodes.Add(, , "root", "My Treeview")
TmpNode.BackColor = lngBackColor
' add first childnode
Set TmpNode = .Nodes.Add("root", tvwChild, "id1", "Line 1")
TmpNode.BackColor = lngBackColor
' add second childnode
Set TmpNode = .Nodes.Add("root", tvwChild, "id2", "Line 2")
TmpNode.BackColor = lngBackColor
' collapse tree
.Nodes(1).Selected = True
.Nodes(2).EnsureVisible
End With
End Sub
Private Sub cmdAddNode_Click()
' add two nodes to the treeview
Dim TmpNode As Node
Set TmpNode = TV1.Nodes.Add("id1", tvwChild, "id" & TV1.Nodes.Count + 1, "Line " & TV1.Nodes.Count)
TmpNode.BackColor = lngBackColor
TmpNode.EnsureVisible
Set TmpNode = TV1.Nodes.Add("id2", tvwChild, "id" & TV1.Nodes.Count + 1, "Line " & TV1.Nodes.Count)
TmpNode.BackColor = lngBackColor
TmpNode.EnsureVisible
End Sub
'**********************
Attribute VB_Name = "modAPI"
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long