ここでは、主に API 関数を使用して、VB で TreeView の背景色を変更する方法を説明します。
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 Alias GetWindowLongA (ByVal hWnd As Long, ByVal nIndex As Long) As Long
プライベート宣言関数 SetWindowLong Lib User32 Alias SetWindowLongA (ByVal hWnd As Long、ByVal nIndex As Long、ByVal dwNewLong As Long) As Long
プライベート定数 GWL_STYLE = -16&
プライベート定数 TVM_SETBKCOLOR = 4381&
プライベート定数 TVM_GETBKCOLOR = 4383&
プライベート定数 TVS_HASLINES = 2&
Dim frmlastForm をフォームとして
プライベートサブフォーム_Load()
ノードとしての Dim nodX
nodX = TreeView1.Nodes.Add(, , R, Root) を設定します。
set nodX = TreeView1.Nodes.Add(R, tvwChild, C1, Child 1)
set nodX = TreeView1.Nodes.Add(R, tvwChild, C2, Child 2)
set nodX = TreeView1.Nodes.Add(R, tvwChild, C3, Child 3)
set nodX = TreeView1.Nodes.Add(R, tvwChild, C4, Child 4)
nodX.EnsureVisible
TreeView1.style = tvwTreelinesText ' スタイル 4.
TreeView1.BorderStyle = vbFixedSingle
エンドサブ
プライベートサブコマンド1_Click()
Dim lngStyle As Long
SendMessage(TreeView1.hWnd, TVM_SETBKCOLOR, 0, ByVal RGB(255, 0, 0)) を呼び出す
'背景を色に変更
lngStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE)
SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle - TVS_HASLINES) を呼び出す
SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle) を呼び出します。
エンドサブ
明示的なオプション
プライベート宣言関数 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 Alias GetWindowLongA (ByVal hWnd As Long, ByVal nIndex As Long) As Long
プライベート宣言関数 SetWindowLong Lib User32 Alias SetWindowLongA (ByVal hWnd As Long、ByVal nIndex As Long、ByVal dwNewLong As Long) As Long
プライベート定数 GWL_STYLE = -16&
プライベート定数 TVM_SETBKCOLOR = 4381&
プライベート定数 TVM_GETBKCOLOR = 4383&
プライベート定数 TVS_HASLINES = 2&
プライベートサブフォーム_Load()
Dim ノード X をノードとして
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 を使用する場合
ノードデックス = .Add(, , R, ルート) を設定します。
nodex.BackColor = RGB(255, 0, 0)
i = 1 ~ 10 の場合
set nodex = .Add(R, tvwChild, C & i, Child & i)
nodex.BackColor = RGB(255, 0, 0)
nodex.EnsureVisible
次
で終わる
エンドサブ