Cr�e un contr�le Header
#include <GuiHeader.au3>
_GUICtrlHeader_Create ( $hWnd [, $iStyle = 0x00000046] )
$hWnd | Handle du parent ou de la fen�tre propri�taire |
$iStyle | [optionnel] Styles du contr�le: $HDS_BUTTONS - Chaque en-t�te du contr�le apparait et se comporte comme un bouton poussoir $HDS_DRAGDROP - Permet le glisser-d�poser pour r�organiser les colonnes $HDS_FILTERBAR - Inclut une barre de filtre dans le cadre du contr�le Header standard $HDS_FLAT - Force le contr�le Header � se dessiner sans relief $HDS_FULLDRAG - Force le contr�le Header � afficher le contenu des en-t�tes $HDS_HIDDEN - Sp�cifie que le contr�le Header est destin� � �tre cach� $HDS_HORZ - Cr�e un contr�le Header avec une orientation horizontale $HDS_HOTTRACK - Active la trace en temps r�el Par d�faut: $HDS_BUTTONS, $HDS_HOTTRACK, $HDS_DRAGDROP Forc�s: $WS_CHILD, $WS_VISIBLE |
Succ�s: | Retourne le handle du contr�le Header |
�chec: | Retourne 0 |
#include <GUIConstantsEx.au3> #include <GuiHeader.au3> #include <WindowsConstants.au3> Global $g_hHeader Example() Func Example() Local $hGUI ; Cr�e une GUI $hGUI = GUICreate("Header", 400, 300) $g_hHeader = _GUICtrlHeader_Create($hGUI, $HDS_FILTERBAR) _GUICtrlHeader_SetUnicodeFormat($g_hHeader, True) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Ajoute des colonnes _GUICtrlHeader_AddItem($g_hHeader, "Column 1", 100) _GUICtrlHeader_AddItem($g_hHeader, "Column 2", 100) _GUICtrlHeader_AddItem($g_hHeader, "Column 3", 100) _GUICtrlHeader_AddItem($g_hHeader, "Column 4", 100) ; Efface tous les filtres _GUICtrlHeader_ClearFilterAll($g_hHeader) ; Boucle jusqu'� ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndFrom, $iCode Local $tNMHDR, $tNMHEADER, $tNMHDFILTERBTNCLICK, $tNMHDDISPINFO $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") If $hWndFrom = $g_hHeader then Switch $iCode Case $HDN_BEGINDRAG ; Envoy� par le contr�le Header quand une op�ration 'glisser' a d�marr� sur un des ses �l�ments $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_BEGINDRAG" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) Return False ; Permet au contr�le Header de g�rer automatiquement les op�rations de glisser-d�poser ; Return True; Permet une gestion externe (manuelle) du glisser-d�poser par le propri�taire du ; contr�le qui veut fournir des services personnalis�s dans le processus de glisser-d�poser Case $HDN_BEGINTRACK, $HDN_BEGINTRACKW ; Notifie � la fen�tre parent d'un contr�le Header que l'utilisateur a d�marr� 'glisser' sur une s�paration $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_BEGINTRACK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) Return False ; pour autoriser le glissement de la barre de s�paration ;Return True ; pour interdire le glissement Case $HDN_DIVIDERDBLCLICK, $HDN_DIVIDERDBLCLICKW ; Notifie � la fen�tre parent du contr�le Header que l'utilisateur a double-cliqu� sur une s�paration $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_DIVIDERDBLCLICK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) ; aucune valeur retourn�e Case $HDN_ENDDRAG ; Envoy� par le contr�le Header quand une op�ration 'd�poser' termine l'op�ration 'glisser' relative � un �l�ment $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_ENDDRAG" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) Return False ; pour autoriser le contr�le � placer et r�-ordonner automatiquement l'�l�ment ; Return True ; pour interdire 'd�poser' pour l'�l�ment Case $HDN_ENDTRACK, $HDN_ENDTRACKW ; Notifie � la fen�tre parent d'un contr�le Header que l'utilisateur a termin� le glissemnt d'une s�paration $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_ENDTRACK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) ; aucune valeur retourn�e Case $HDN_FILTERBTNCLICK ; Notifie � la fen�tre parent d'un contr�le Header que le bouton filtre est cliqu� ou en r�ponse � un message $HDM_SETITEM $tNMHDFILTERBTNCLICK = DllStructCreate($tagNMHDFILTERBTNCLICK, $lParam) _DebugPrint("$HDN_FILTERBTNCLICK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Item") & @CRLF & _ "-->Left:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Left") & @CRLF & _ "-->Top:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Top") & @CRLF & _ "-->Right:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Right") & @CRLF & _ "-->Bottom:" & @TAB & DllStructGetData($tNMHDFILTERBTNCLICK, "Bottom")) ; Return True ; une notication $HDN_FILTERCHANGE sera envoy�e � la fen�tre parent du contr�le Header ; Cette notification donne � la fen�tre parent l'opportunit� de synchroniser les �l�ments de son interface utilisateur Return False ; si vous ne voulez pas que la notification soit envoy�e Case $HDN_FILTERCHANGE ; Notifie � la fen�tre parent d'un contr�le Header que les attributs d'un filtre sont en train d'�tre chang�s ou �dit�s $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_FILTERCHANGE" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) ; aucune valeur retourn�e Case $HDN_GETDISPINFO, $HDN_GETDISPINFOW ; Envoy� au propri�taire du contr�le Header quand le contr�le a besoin d'information sur un �l�ment callback $tNMHDDISPINFO = DllStructCreate($tagNMHDDISPINFO, $lParam) _DebugPrint("$HDN_GETDISPINFO" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHDDISPINFO, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHDDISPINFO, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHDDISPINFO, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHDDISPINFO, "Item")) ; Return LRESULT Case $HDN_ITEMCHANGED, $HDN_ITEMCHANGEDW ; Notifie � la fen�tre parent d'un contr�le Header que les attributs d'un �l�ment ont chang�s $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_ITEMCHANGED" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) ; aucune valeur retourn�e Case $HDN_ITEMCHANGING, $HDN_ITEMCHANGINGW ; Notifie � la fen�tre parent d'un contr�le Header que les attributs d'un �l�ment sont sur le point d'�tre modifi�s $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_ITEMCHANGING" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) Return False ; pour autoriser les changements ; Return True ; pour les pr�venir Case $HDN_ITEMCLICK, $HDN_ITEMCLICKW ; Notifie � la fen�tre parent d'un contr�le Header que l'utilisateur a cliqu� sur le contr�le $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_ITEMCLICK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) ; aucune valeur retourn�e Case $HDN_ITEMDBLCLICK, $HDN_ITEMDBLCLICKW ; Notifie � la fen�tre parent d'un contr�le Header que l'utilisateur a double-cliqu� sur le contr�le $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_ITEMDBLCLICK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) ; aucune valeur retourn�e Case $HDN_TRACK, $HDN_TRACKW ; Notifie � la fen�tre parent d'un contr�le Header que l'utilisateur est en train de faire glisser une s�paration dans le contr�le $tNMHEADER = DllStructCreate($tagNMHEADER, $lParam) _DebugPrint("$HDN_TRACK" & @CRLF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMHEADER, "hWndFrom") & @CRLF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMHEADER, "IDFrom") & @CRLF & _ "-->Code:" & @TAB & DllStructGetData($tNMHEADER, "Code") & @CRLF & _ "-->Item:" & @TAB & DllStructGetData($tNMHEADER, "Item") & @CRLF & _ "-->Button:" & @TAB & DllStructGetData($tNMHEADER, "Button")) Return False ; pour continuer le suivi de la barre de s�paration ; Return True ; pour terminer le suivi EndSwitch EndIf Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func _DebugPrint($s_Text, $sLine = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @CRLF & _ "+======================================================" & @CRLF & _ "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _ "+======================================================" & @CRLF) EndFunc ;==>_DebugPrint