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-------------- 具说是快速清除treeview的代码,试一下
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--------------
具说是快速清除treeview的代码,试一下