title image


Smiley Re: Treeview-Nodes mit Checkboxen (VB6)
Hallo,



das kann man so realisieren:



Foraussetzung

- Form1

- TreeView1



Quelltext

Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const TVIS_CHECK      As Long = &H3000Private Const TVIF_STATE      As Long = &H8Private Const TV_FIRST        As Long = &H1100Private Const TVM_GETITEM     As Long = (TV_FIRST + 12)Private Const TVM_SETITEM     As Long = (TV_FIRST + 13)Private Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)Private Const TVGN_CARET      As Long = &H9Private Const HASCHECKBOX     As Long = 4098Private Type NodeItem   Mask           As Long   hItem          As Long   State          As Long   StateMask      As Long   pszText        As String   cchTextMax     As Long   iImage         As Long   iSelectedImage As Long   cChildren      As Long   lParam         As LongEnd TypePrivate Sub Form_Load()   With Me.TreeView1      .LineStyle = tvwRootLines      .Checkboxes = True      With .Nodes         .Add , , "N1", "Node 1"         .Add "N1", tvwChild, "N1.1", "Node 1.1"         .Add "N1", tvwChild, "N1.2", "Node 1.2"         .Add , , "N2", "Node 2"         .Add "N2", tvwChild, "N2.1", "Node 2.1"         .Add "N2", tvwChild, "N2.2", "Node 2.2"         .Item("N1").Expanded = True         .Item("N2").Expanded = True      End With   End With   TVW_NODE_CHECKBOX_VISIBLE Me.TreeView1, "N1", False   TVW_NODE_CHECKBOX_VISIBLE Me.TreeView1, "N2", FalseEnd SubPrivate Sub Form_Resize()   If Me.WindowState = vbMinimized Then Exit Sub   With Me.TreeView1      .Left = 0      .Top = 0      .Width = Me.ScaleWidth      .Height = Me.ScaleHeight   End WithEnd SubPrivate Sub TVW_NODE_CHECKBOX_VISIBLE(ByRef tvwTreeView As TreeView, ByVal strNodeKey As String, ByVal bolVisible As Boolean)   On Error Resume Next   Dim ndiNodeItem As NodeItem   Dim lngReturn   As Long   tvwTreeView.Nodes.Item(strNodeKey).Selected = True   lngReturn = SendMessage(tvwTreeView.hWnd, TVM_GETNEXTITEM, TVGN_CARET, ByVal 0&)   If lngReturn > 0 Then      With ndiNodeItem         .hItem = lngReturn         .Mask = TVIF_STATE         .StateMask = TVIS_CHECK         ' Status markierten Knotens ermitteln         SendMessage tvwTreeView.hWnd, TVM_GETITEM, 0&, tvwTreeView         If bolVisible Then            .State = HASCHECKBOX         Else            .State = 0         End If      End With      ' Neuer Status übergeben      SendMessage tvwTreeView.hWnd, TVM_SETITEM, 0&, ndiNodeItem   End IfEnd Sub

Mit freundlichen Grüßen

AndyG

E-Mail:  Andreas_Graf [öt] DevPlanet.de
Homepage:  http://www.DevPlanet.de



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: