VB初心者友の会でTREEVIEWについて質問を出した 齋藤です。はじめまして。
私の質問に対してさっそくUzさんからフォロー頂きまして ありがとうございます。
ところで1つ質問が有ります。
私が作成したTREEVIEWにチェックボックスを 付加するコードから Uzさんが作成したチェックボックスのチェックが ONOFFの判断をするコードを NODEがクリックしたときに呼び出したいのですが NODEがクリックされた時にそのノードのハンドル?を 取得してUzさんのコードに引数として渡す 渡し方がわかりません。
どうすればよいのでしょうか? もしかして簡単なことかもしれませんがAPI初心者なもので 思い付きません。 以下に私の作成したコードとUzさんの投稿なされたコードを 掲載いたしますのでどうかよろしくお願いいたします。 (無断でUzさんのコードを転載することをお許しください)
私の作ったコード(TREEVIEWにチェックボックスを 付加するコード) −−−−ここから−−−− Option Explicit
Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" _ (ByVal hwnd As Long, _ ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" _ (ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const TVS_CHECKBOXES = &H100 Private Const TVS_FULLROWSELECT = &H1000 Private Const TVS_1 = &H200
Private Sub Form_Load() Dim NodeX As Node Dim LstIm As ListImage Dim pa As String Dim i As Integer, j As Integer Dim strX As String Dim st As Long Dim ret As Long With ImageList1 .ImageHeight = 16 .ImageWidth = 16 'pa = "C:\Programfiles _ \DevStudio\Vb\Graphics\Bitmaps\Outline\"
Set LstIm = .ListImages.Add(, "Open", LoadPicture(pa & "Open.bmp")) Set LstIm = .ListImages.Add(, "Close", LoadPicture(pa & "Closed.bmp")) .MaskColor = vbWhite End With With TreeView1 .Style = tvwTreelinesPlusMinusText
.Indentation = 300 .ImageList = ImageList1 Set NodeX = .Nodes.Add(, , "Root", "Root", "Close", "Open") For i = 1 To 3 strX = "Child" & CStr(i) Set NodeX _ = .Nodes.Add("Root", tvwChild, strX, strX, "Close", "Open") For j = 1 To 3 strX = "LittleChild" & CStr(i) & CStr(j) Set NodeX = _ .Nodes.Add("Child" & i, tvwChild, strX, strX, "Close", "Open") NodeX.EnsureVisible Next j Next i End With st = GetWindowLong(TreeView1.hwnd, GWL_STYLE) st = st Or TVS_FULLROWSELECT Or TVS_CHECKBOXES ret = SetWindowLong(TreeView1.hwnd, GWL_STYLE, st) End Sub −−−−ここまで−−−−
Uzさんのコード −−−−ここから−−−− Public Function IsTVItemChecked(hwndTV As Long, hItem As Long) As Boolean Dim tvi As TVITEM With tvi .mask = TVIF_STATE .hItem = hItem .stateMask = TVIS_STATEIMAGEMASK End With Call TreeView_GetItem(hwndTV, tvi) IsTVItemChecked = (tvi.state And INDEXTOSTATEIMAGEMASK(IIL_CHECKED)) End Function −−−−ここまで−−−−
|