Trie un contr�le ListView (limit�)
#include <GuiListView.au3>
_GUICtrlListView_SimpleSort ( $hWnd, ByRef $vSortSense, $iCol [, $bToggleSense = True] )
$hWnd | Handle du contr�le |
$vSortSense | D�finit l'ordre de tri: True - Tri d�croissant False - Tri croissant Utilisez une variable simple pour une seule colonne ListView Utilisez un tableau pour un ListView � plusieurs colonnes: $aArray[0] - Ordre du tri pour la premi�re colonne $aArray[1] - Ordre du tri pour la deuxi�me colonne $aArray[n] - Ordre du tri pour la derni�re colonne |
$iCol | Num�ro de colonne |
$bToggleSense | [optionnel] Bascule le sens du tri True - Bascule le sens du tri apr�s le tri (par d�faut) False - Le sens du tri reste inchang� apr�s le tri |
C'est une fonction de tri basique, pour un tri plus performant, utilisez GUICtrlRegisterListViewSort().
Basculer le sens du tri est un comportement normal lorsque le tri est initi� par un clic sur l'en-t�te de colonne.
L'utilisateur peut emp�cher cette bascule en mettant $bToggleSense � False lors d'un appel de la fonction d'un autre endroit.
Si la fonction est appel�e � partir de plusieurs fonctions et si le sens du tri doit �tre bascul�, il est important que $vSortSense soit de port�e Global.
Sinon, le sens sera r�initialis� � chaque fois que $vSortSense sera cr�� et le basculement sera inefficace.
#include <GUIConstantsEx.au3> #include <GUIListView.au3> #include <WindowsConstants.au3> Global $g_idListView, $g_bSortSense = False ; D�finit un tri croissant Example() Func Example() GUICreate("SimpleSort", 300, 300) $g_idListView = GUICtrlCreateListView("Item", 10, 10, 280, 240) _GUICtrlListView_SetColumnWidth($g_idListView, 0, 260) Local $idButton_Add = GUICtrlCreateButton("Add Item", 10, 260, 80, 30) Local $idButton_Set = GUICtrlCreateButton("Reset Ascending Sort Order", 110, 260, 180, 30) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") Local $iMsg Do $iMsg = GUIGetMsg() Switch $iMsg Case $idButton_Add Local $sData = Chr(Random(65, 90, 1)) GUICtrlCreateListViewItem($sData, $g_idListView) _GUICtrlListView_SimpleSort($g_idListView, $g_bSortSense, 0, False) ; Emp�che la direction du tri de basculer la prochaine fois Case $idButton_Set $g_bSortSense = False ; R�initialise l'ordre croissant pour la prochaine fois EndSwitch Until $iMsg = $GUI_EVENT_CLOSE EndFunc ;==>Example Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndListView = $g_idListView If Not IsHWnd($g_idListView) Then $hWndListView = GUICtrlGetHandle($g_idListView) Local $tNMHDR = DllStructCreate($tagNMLISTVIEW, $lParam) Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) Local $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $LVN_COLUMNCLICK ; Une colonne a �t� cliqu�e ; Direction du tri pour le prochain tri, bascul�e par d�faut _GUICtrlListView_SimpleSort($hWndListView, $g_bSortSense, DllStructGetData($tNMHDR, "SubItem")) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>_WM_NOTIFY