UDF > GUI > GuiStatusBar >


_GUICtrlStatusBar_Create

Crée un contrôle StatusBar (barre d'état)

#include <GuiStatusBar.au3>
_GUICtrlStatusBar_Create ( $hWnd [, $vPartEdge = -1 [, $vPartText = "" [, $iStyles = -1 [, $iExStyles = 0x00000000]]]] )

Paramètres

$hWnd Handle de la fenêtre parent
$vPartEdge [optionnel] Largeur de la partie ou des parties, pour plus de 1 partie passez un tableau, de base 0, au format suivant:
    $vPartEdge[0] - Bord droit de la partie #1
    $vPartEdge[1] - Bord droit de la partie #2
    $vPartEdge[n] - Bord droit de la partie n
$vPartText [optionnel] Texte de la partie ou des parties, pour plus de 1 partie passez un tableau, de base 0, dans le format suivant:
    $vPartText[0] - Première partie
    $vPartText[1] - Deuxième partie
    $vPartText[n] - Dernière partie
$iStyles [optionnel] Styles du contrôle:
    $SBARS_SIZEGRIP - Le contrôle StatusBar comprend une poignée de dimensionnement à l'extrémité droite de la barre d'état
    $SBARS_TOOLTIPS - La StatusBar aura un info-bulle

Forçé: $WS_CHILD, $WS_VISIBLE
$iExStyles [optionnel] Styles étendus du contrôle. Ils correspondent aux constantes standards $WS_EX_*. Consultez Table des Styles Etendus.

Valeur de retour

Succès: Retourne le handle du contrôle.
Échec: Retourne 0.

Remarque

Si vous utilisez GUICtrlCreateMenu(), alors utilisez _GUICtrlStatusBar_Create() après GUICtrlCreateMenu().

En relation

_GUICtrlStatusBar_Destroy

Exemples

Exemple 1

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

Global $g_idMemo, $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGUI
    Local $aParts[3] = [75, 150, -1]

    ; Crée une GUI
    $hGUI = GUICreate("(Example 1) StatusBar Create", 400, 300)

    ; 1 partie par défaut, pas de texte
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI)
    _GUICtrlStatusBar_SetParts($g_hStatus, $aParts)

    ; Crée un contrôle memo
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($g_idMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($g_idMemo, 0xFFFFFF)
    GUISetState(@SW_SHOW)

    MemoWrite("StatusBar Created with:" & @CRLF & _
            @TAB & "Handle to GUI window" & @CRLF)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; Obtient les tailles des bordures
    MemoWrite("Horizontal border width .: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    MemoWrite("Vertical border width ...: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    MemoWrite("Width between rectangles : " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR

    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local $tInfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK 
                    ; L'utilisateur a cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic

                Case $NM_DBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RCLICK 
                    ; L'utilisateur a cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.
  
                Case $NM_RDBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $SBN_SIMPLEMODECHANGE 
                    ; Changement en mode simple (simple texte dans la StatusBar à la place des parties)
                    _DebugPrint("$SBN_SIMPLEMODECHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Aucune valeur retournée
            EndSwitch
    EndSwitch
    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

Exemple 2

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

Global $g_idMemo, $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGUI
    Local $aParts[3] = [75, 150, -1]

    ; Crée une GUI
    $hGUI = GUICreate("(Example 2) StatusBar Create", 400, 300)

    ; Définit des parties avec aucun texte
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts)
    ; Crée un contrôle memo
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($g_idMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($g_idMemo, 0xFFFFFF)
    GUISetState(@SW_SHOW)

    MemoWrite("StatusBar Created with:" & @CRLF & _
            @TAB & "Handle to GUI window" & @CRLF & _
            @TAB & "part width array of 3 elements" & @CRLF)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; Obtient les tailles des bordures
    MemoWrite("Horizontal border width .: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    MemoWrite("Vertical border width ...: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    MemoWrite("Width between rectangles : " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR

    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local $tInfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK 
                    ; L'utilisateur a cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_DBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.
                
                Case $NM_RCLICK 
                    ; L'utilisateur a cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.
                
                Case $NM_RDBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; to allow default processing of the clic.
                    
                Case $SBN_SIMPLEMODECHANGE 
                    ; Changement en mode simple (simple texte dans la StatusBar à la place des parties)
                    _DebugPrint("$SBN_SIMPLEMODECHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Aucune valeur retournée
            EndSwitch
    EndSwitch
    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

Exemple 3

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

Global $g_idMemo, $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGUI
    Local $aText[3] = ["Left Justified", @TAB & "Centered", @TAB & @TAB & "Right Justified"]
    Local $aParts[3] = [100, 175, -1]

    ; Crée une GUI
    $hGUI = GUICreate("(Example 3) StatusBar Create", 400, 300)

    ; Définit des parties et du texte
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts, $aText)
    
    ; Crée un contrôle memo
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($g_idMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($g_idMemo, 0xFFFFFF)
    GUISetState(@SW_SHOW)

    MemoWrite("StatusBar Created with:" & @CRLF & _
            @TAB & "only Handle," & @CRLF & _
            @TAB & "part width array of 3 elements" & @CRLF & _
            @TAB & "part text array of 3 elements" & @CRLF)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; Obtient les tailles des bordures
    MemoWrite("Horizontal border width .: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    MemoWrite("Vertical border width ...: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    MemoWrite("Width between rectangles : " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR

    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local $tInfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK 
                    ; L'utilisateur a cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_DBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RCLICK 
                    ; L'utilisateur a cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RDBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $SBN_SIMPLEMODECHANGE 
                    ; Changement en mode simple (simple texte dans la StatusBar à la place des parties)
                    _DebugPrint("$SBN_SIMPLEMODECHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Aucune valeur retournée
            EndSwitch
    EndSwitch
    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

Exemple 4

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

Global $g_idMemo, $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGUI
    Local $aText[3] = ["Left Justified", @TAB & "Centered", @TAB & @TAB & "Right Justified"]

    ; Crée une GUI
    $hGUI = GUICreate("(Example 4) StatusBar Create", 400, 300)

    ; Créera des largeurs de parties basées sur la taille de la partie passée
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, 100, $aText)
    
    ; Crée un contrôle memo
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($g_idMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($g_idMemo, 0xFFFFFF)
    GUISetState(@SW_SHOW)

    MemoWrite("StatusBar Created with:" & @CRLF & _
            @TAB & "only Handle," & @CRLF & _
            @TAB & "part width number" & @CRLF & _
            @TAB & "part text array of 3 elements" & @CRLF)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; Obtient la taille des bordures
    MemoWrite("Horizontal border width .: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    MemoWrite("Vertical border width ...: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    MemoWrite("Width between rectangles : " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR

    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local $tInfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK 
                    ; L'utilisateur a cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_DBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RCLICK 
                    ; L'utilisateur a cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RDBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $SBN_SIMPLEMODECHANGE 
                    ; Changement en mode simple (simple texte dans la StatusBar à la place des parties)
                    _DebugPrint("$SBN_SIMPLEMODECHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Aucune valeur retournée
            EndSwitch
    EndSwitch
    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

Exemple 5

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

Global $g_idMemo, $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGUI
    Local $aText[3] = ["Left Justified", @TAB & "Centered", @TAB & @TAB & "Right Justified"]
    Local $aParts[2] = [100, 175]

    ; Crée une GUI
    $hGUI = GUICreate("(Example 5) StatusBar Create", 400, 300)

    ; Ajuste le tableau au plus grand tableau passé (cette fois le tableau de texte est le plus grand)
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts, $aText)
    
    ; Crée un contrôle memo
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($g_idMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($g_idMemo, 0xFFFFFF)
    GUISetState(@SW_SHOW)

    MemoWrite("StatusBar Created with:" & @CRLF & _
            @TAB & "only Handle," & @CRLF & _
            @TAB & "part width array of 2 elements" & @CRLF & _
            @TAB & "part text array of 3 elements" & @CRLF)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; Obtient la taille des bordures
    MemoWrite("Horizontal border width .: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    MemoWrite("Vertical border width ...: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    MemoWrite("Width between rectangles : " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR

    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local $tInfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK 
                    ; L'utilisateur a cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_DBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RCLICK 
                    ; L'utilisateur a cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RDBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $SBN_SIMPLEMODECHANGE 
                    ; Changement en mode simple (simple texte dans la StatusBar à la place des parties)
                    _DebugPrint("$SBN_SIMPLEMODECHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Aucune valeur retournée
            EndSwitch
    EndSwitch
    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

Exemple 6

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>

Global $g_idMemo, $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGUI
    Local $aText[2] = ["Left Justified", @TAB & "Centered"]
    Local $aParts[3] = [100, 175, -1]

    ; Crée une GUI
    $hGUI = GUICreate("(Example 6) StatusBar Create", 400, 300)

    ; Ajuste le tableau au plus grand tableau passé (cette fois le tableau des largeurs des parties)
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts, $aText)
    
    ; Crée un contrôle memo
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 274, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUICtrlSendMsg($g_idMemo, $EM_SETREADONLY, True, 0)
    GUICtrlSetBkColor($g_idMemo, 0xFFFFFF)
    GUISetState(@SW_SHOW)

    MemoWrite("StatusBar Created with:" & @CRLF & _
            @TAB & "only Handle," & @CRLF & _
            @TAB & "part width array of 3 elements" & @CRLF & _
            @TAB & "part text array of 2 elements" & @CRLF)

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; Obtient la taille des bordures
    MemoWrite("Horizontal border width .: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    MemoWrite("Vertical border width ...: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    MemoWrite("Width between rectangles : " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR

    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Local $tInfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK 
                    ; L'utilisateur a cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_DBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton gauche de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RCLICK 
                    ; L'utilisateur a cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $NM_RDBLCLK 
                    ; L'utilisateur a double-cliqué sur le bouton droit de la souris à l'intérieur du contrôle
                    $tInfo = DllStructCreate($tagNMMOUSE, $lParam)
                    $hWndFrom = HWnd(DllStructGetData($tInfo, "hWndFrom"))
                    $iIDFrom = DllStructGetData($tInfo, "IDFrom")
                    $iCode = DllStructGetData($tInfo, "Code")
                    _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode & @CRLF & _
                            "-->ItemSpec:" & @TAB & DllStructGetData($tInfo, "ItemSpec") & @CRLF & _
                            "-->ItemData:" & @TAB & DllStructGetData($tInfo, "ItemData") & @CRLF & _
                            "-->X:" & @TAB & DllStructGetData($tInfo, "X") & @CRLF & _
                            "-->Y:" & @TAB & DllStructGetData($tInfo, "Y") & @CRLF & _
                            "-->HitInfo:" & @TAB & DllStructGetData($tInfo, "HitInfo"))
                    Return True ; ; indique qu'un clic souris a été effectué et supprime le traitement par défaut par le système
                    ; Return FALSE ; pour permettre le traitement par défaut du clic.

                Case $SBN_SIMPLEMODECHANGE 
                    ; Changement en mode simple (simple texte dans la StatusBar à la place des parties)
                    _DebugPrint("$SBN_SIMPLEMODECHANGE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _
                            "-->Code:" & @TAB & $iCode)
                    ; Aucune valeur retournée
            EndSwitch
    EndSwitch
    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