# Function Reference

# _GUICtrlStatusBar_SetParts

Sets the number of parts and the part edges

#include <GuiStatusBar.au3>
_GUICtrlStatusBar_SetParts ( $hWnd [, $vPartEdge = -1 [, $vPartWidth = 25]] )

## Parameters

$hWnd | Handle to the control
$vPartEdge | [optional] Number of parts, can be an 0-based array of ints in the following format: $vPartEdge[0] - Right edge of part #1 $vPartEdge[1] - Right edge of part #2 $vPartEdge[n] - Right edge of part n
$vPartWidth | [optional] Size of parts, can be an 0-based array of ints in the following format: $vPartWidth[0] - width part #1 $vPartWidth[1] - width of part #2 $vPartWidth[n] - width of part n

## Return Value

Success: | True.
Failure: | False.

## Remarks

If an element is -1, the right edge of the corresponding part extends to the border of the window.
$vPartWidth is ignored if $vPartEdge is an Array.
$vPartEdge and $vPartWidth being both an Array is an error.

## Related

_GUICtrlStatusBar_GetParts

## Example

### Example 1 : with default Widths

    #include "Extras\HelpFileInternals.au3"

    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>

    Example()

    Func Example()
        ; Create GUI
        Local $hGUI = GUICreate("StatusBar Set Parts (v" & @AutoItVersion & ")", 450, 320, 100, 100)
        Local $hStatus = _GUICtrlStatusBar_Create($hGUI)

        ; Create memo control
        _MemoCreate(2, 8, 444, 259)
        GUISetState(@SW_SHOW)

        ; Set/Get parts
        Local $aParts[3] = [75, 150, -1]
        _GUICtrlStatusBar_SetParts($hStatus, $aParts)

        ;Set Text/ Get Width
        Local $iParts = _GUICtrlStatusBar_GetCount($hStatus)
        For $iI = 0 To $iParts - 1
            _GUICtrlStatusBar_SetText($hStatus, "Text " & $iI, $iI)
            _MemoWrite("Part " & $iI & " width .: " & _GUICtrlStatusBar_GetWidth($hStatus, $iI))
        Next

        _MemoMsgBoxStatus("", -1, $hGUI) ; no more action, wait GUI for closing

        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
    EndFunc   ;==>Example

### Example 2 : with array of Widths

    #include "Extras\HelpFileInternals.au3"

    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>

    Example()

    Func Example()
        ; Create GUI
        Local $hGUI = GUICreate("StatusBar Set Parts (v" & @AutoItVersion & ")", 450, 320, 100, 100)
        Local $hStatus = _GUICtrlStatusBar_Create($hGUI)

        ; Create memo control
        _MemoCreate(2, 8, 444, 259)
        GUISetState(@SW_SHOW)

        ; Set parts
        Local $aPartWidth[3] = [75, 75, -1]
        _GUICtrlStatusBar_SetParts($hStatus, -1, $aPartWidth)

        ;Set Text/ Get Width
        Local $iParts = _GUICtrlStatusBar_GetCount($hStatus)
        For $iI = 0 To $iParts - 1
            _GUICtrlStatusBar_SetText($hStatus, "Text " & $iI, $iI)
            _MemoWrite("Part " & $iI & " width .: " & _GUICtrlStatusBar_GetWidth($hStatus, $iI))
        Next

        _MemoMsgBoxStatus("", -1, $hGUI) ; no more action, wait GUI for closing

        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
    EndFunc   ;==>Example

### Example 3 : n Parts equal size

    #include "Extras\HelpFileInternals.au3"

    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>

    Example()

    Func Example()
        ; Create GUI
        Local $hGUI = GUICreate("StatusBar Set Parts (v" & @AutoItVersion & ")", 450, 320, 100, 100)
        Local $hStatus = _GUICtrlStatusBar_Create($hGUI)

        ; Create memo control
        _MemoCreate(2, 8, 444, 259)
        GUISetState(@SW_SHOW)

        ; Set parts
        _GUICtrlStatusBar_SetParts($hStatus, 3, 75)

        ;Set Text/ Get Width
        Local $iParts = _GUICtrlStatusBar_GetCount($hStatus)
        For $iI = 0 To $iParts - 1
            _GUICtrlStatusBar_SetText($hStatus, "Text " & $iI, $iI)
            _MemoWrite("Part " & $iI & " width .: " & _GUICtrlStatusBar_GetWidth($hStatus, $iI))
        Next

        _MemoMsgBoxStatus("", -1, $hGUI) ; no more action, wait GUI for closing

        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
    EndFunc   ;==>Example

### Example 4 : only one Part

    #include "Extras\HelpFileInternals.au3"

    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>

    Example()

    Func Example()
        ; Create GUI
        Local $hGUI = GUICreate("StatusBar Set Parts (v" & @AutoItVersion & ")", 450, 320, 100, 100)
        Local $hStatus = _GUICtrlStatusBar_Create($hGUI)

        ; Create memo control
        _MemoCreate(2, 8, 444, 259)
        GUISetState(@SW_SHOW)

        ; Set 5 parts
        _GUICtrlStatusBar_SetParts($hStatus, 5)
        ; Reset to only one part
        _GUICtrlStatusBar_SetParts($hStatus)

        ;Set Text/ Get Width
        Local $iParts = _GUICtrlStatusBar_GetCount($hStatus)
        For $iI = 0 To $iParts - 1
            _GUICtrlStatusBar_SetText($hStatus, "Text " & $iI, $iI)
            _MemoWrite("Part " & $iI & " width .: " & _GUICtrlStatusBar_GetWidth($hStatus, $iI))
        Next

        _MemoMsgBoxStatus("", -1, $hGUI) ; no more action, wait GUI for closing

        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
    EndFunc   ;==>Example