AIDE POUR MÉTHODE CLEAR DU TREEVIEW & DRAG N DROP ENTRE 2 TREEVIEW
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 2009
-
4 avril 2002 à 11:10
mazouz01said
Messages postés1Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention23 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.
mazouz01said
Messages postés1Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention23 février 2008 23 févr. 2008 à 19:35
je suis ravis de connaitre ce site important et interressant mercie
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 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és796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 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...
23 févr. 2008 à 19:35
4 avril 2002 à 11:30
A++
Crazyht
4 avril 2002 à 11:10
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