_GUICtrlHeader_GetOrderArray, _GUICtrlHeader_SetOrderArray Corrected Example #include <GUIConstantsEx.au3>
#include <GuiHeader.au3>
$Debug_HDR = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $hHeader, $aOrder[5] = [4, 3, 1, 2, 0]
; Create GUI
$hGUI = GUICreate("Header", 400, 300)
$hHeader = _GUICtrlHeader_Create($hGUI)
$iMemo = GUICtrlCreateEdit("", 2, 24, 396, 274, 0)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Add columns
_GUICtrlHeader_AddItem($hHeader, "Column 1", 100)
_GUICtrlHeader_AddItem($hHeader, "Column 2", 100)
_GUICtrlHeader_AddItem($hHeader, "Column 3", 100)
_GUICtrlHeader_AddItem($hHeader, "Column 4", 100)
; Set order array
_GUICtrlHeader_SetOrderArray($hHeader, $aOrder)
; Show order array
$aOrder = _GUICtrlHeader_GetOrderArray($hHeader)
For $iI = 1 To $aOrder[0]
MemoWrite("Index: " & $iI-1 & ", Order: " & $aOrder[$iI] & ' (' & _GUICtrlHeader_GetItemText ($hHeader, $iI-1) & ')')
Next
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
; Write a line to the memo control
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite In all the examples (_GUICtrlHeader_...) you need to add support for Unicode. Otherwise, the column names are not displayed. _GUICtrlHeader_SetUnicodeFormat ($hHeader, True) _GUICtrlHeader_GetItemAlign, _GUICtrlHeader_SetItemAlign, _GUICtrlHeader_GetItemFormat, _GUICtrlHeader_SetItemFormat ; Reset column ; Set column