FastClearing




' Constants / Declarations - Change Public / Private as required

'

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 Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'

' Very fast Clearing of treeview control - Place this where required

'_________________________________________________________


Private 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











( fastclearing.html )- by Paolo Puglisi - Modifica del 17/12/2023