本文给는 VB中改变TreeView의 색상 방식을 사용하여 API를 사용합니다.
Private Declare Function SendMessage Lib User32 Alias SendMessageA (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
개인 선언 함수 GetWindowLong Lib User32 별칭 GetWindowLongA (ByVal hWnd As Long, ByVal nIndex As Long)
Private 선언 함수 SetWindowLong Lib User32 Alias SetWindowLongA (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
비공개 Const GWL_STYLE = -16&
개인 상수 TVM_SETBKCOLOR = 4381&
비공개 상수 TVM_GETBKCOLOR = 4383&
개인 상수 TVS_HASLINES = 2&
Dim frmlastForm As Form
비공개 하위 Form_Load()
Dim nodX를 노드로 사용
nodX = TreeView1.Nodes.Add(, , R, Root) 설정
nodX = TreeView1.Nodes.Add(R, tvwChild, C1, Child 1) 설정
nodX = TreeView1.Nodes.Add(R, tvwChild, C2, Child 2) 설정
nodX = TreeView1.Nodes.Add(R, tvwChild, C3, Child 3) 설정
nodX = TreeView1.Nodes.Add(R, tvwChild, C4, Child 4) 설정
nodX.EnsureVisible
TreeView1.style = tvwTreelinesText ' 스타일 4.
TreeView1.BorderStyle = vbFixedSingle
서브 끝
개인 하위 Command1_Click()
길이만큼 희미한 lngStyle
SendMessage 호출(TreeView1.hWnd, TVM_SETBKCOLOR, 0, ByVal RGB(255, 0, 0))
'改变背景到红color'
lngStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE)
SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle - TVS_HASLINES) 호출
SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle) 호출
서브 끝
옵션 명시적
개인 선언 기능 SendMessage Lib User32 별칭 SendMessageA (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long)
개인 선언 함수 GetWindowLong Lib User32 별칭 GetWindowLongA (ByVal hWnd As Long, ByVal nIndex As Long)
Private 선언 함수 SetWindowLong Lib User32 Alias SetWindowLongA (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
비공개 Const GWL_STYLE = -16&
개인 상수 TVM_SETBKCOLOR = 4381&
비공개 상수 TVM_GETBKCOLOR = 4383&
개인 상수 TVS_HASLINES = 2&
비공개 하위 Form_Load()
Dim nodex를 노드로 사용
Dim i를 정수로 표시
긴 스타일만큼 희미함
SendMessage 호출(TreeView1.hWnd, TVM_SETBKCOLOR, 0, ByVal RGB(255, 0, 0))
lStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE)
SetWindowLong(TreeView1.hWnd, GWL_STYLE, lStyle - TVS_HASLINES) 호출
SetWindowLong(TreeView1.hWnd, GWL_STYLE, lStyle) 호출
TreeView1.Style = tvwTreelinesPlusMinusPictureText
TreeView1.BorderStyle = ccFixedSingle
TreeView1.Nodes 사용
nodex = .Add(, , R, Root) 설정
nodex.BackColor = RGB(255, 0, 0)
i = 1 ~ 10의 경우
nodex = .Add(R, tvwChild, C & i, Child & i) 설정
nodex.BackColor = RGB(255, 0, 0)
nodex.EnsureVisible
다음
끝
서브 끝