AIDE POUR MÉTHODE CLEAR DU TREEVIEW & DRAG N DROP ENTRE 2 TREEVIEW

Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 - 4 avril 2002 à 11:10
mazouz01said Messages postés 1 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 23 février 2008 - 23 févr. 2008 à 19:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/2957-aide-pour-methode-clear-du-treeview-drag-n-drop-entre-2-treeview

mazouz01said Messages postés 1 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 23 février 2008
23 févr. 2008 à 19:35
je suis ravis de connaitre ce site important et interressant mercie
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
4 avril 2002 à 11:30
Haddock il y a un forum pour poser tes question cette section est prévu pour deposer des sources d'exemple mais surement pas pour demander de l'aide

A++
Crazyht
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
4 avril 2002 à 11:10
Salut,

C'est pas vraiment l'endroit pour poser ta question... tu aurais du le faire dans le forum destiné à cela. C'est pas grâve !

Voici le code qui permet de vider un treeview via API:

'DECLARATIONS CONSTANTES
Const TV_FIRST As Long = &H1100
Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
Const TVM_DELETEITEM As Long = (TV_FIRST + 1)
Const TVGN_ROOT As Long = &H0
Const WM_SETREDRAW As Long = &HB

'DECLARATION API
Private 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

Private Sub ClearTreeView(ByVal tvHwnd As Long)

Dim lNodeHandle As Long

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


Exemple: ClearTreeView(MonTreeview.Hwnd)

Voilà, j'espère que cette méthode sera plus efficace...

P.S: une façon de gagner du temps est de rendre invisible le treeview pendant l'action, puis de le rendre visible à nouveau... Cela permet d'éviter le rafraîchissement de celui-ci, ce qui prend pas mal de ressources aussi...

Tchao

NéoB
Rejoignez-nous