Programming » Visual Basic 6 » Visual Basic 6 Code » Controls » Treeview » ");?>
Clears all nodes much faster than the .Nodes.Clear method.
Public Const TV_FIRST As Long = &H1100
Public Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
Public Const TVM_DELETEITEM As Long = (TV_FIRST + 1)
Public Const TVGN_ROOT As Long = &H0
Public Const WM_SETREDRAW As Long = &HB

Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As LongByVal msg As LongByVal wParam As _
        LongByVal lParam As LongAs Long

Public Sub ClearTreeView(ByVal tvHwnd As Long)

    Dim lNodeHandle As Long
    ' Turn off redrawing on the Treeview for more speed improvements
    SendMessageLong tvHwnd, WM_SETREDRAW, False, 0

    Do
        lNodeHandle = SendMessageLong(tvHwnd, TVM_GETNEXTITEM, TVGN_ROOT, 0)
        If lNodeHandle > 0 Then
            SendMessageLong tvHwnd, TVM_DELETEITEM, 0, lNodeHandle
        Else
            Exit Do
        End If
    Loop

    SendMessageLong tvHwnd, WM_SETREDRAW, True, 0
End Sub