# Function Reference

TrayCreateItem

Creates a menuitem control for the tray.

TrayCreateItem ( text [, menuID [, menuentry [, menuradioitem]]] )

Parameters

text | The text of the control.
menuID | Allows you to create a submenu in the referenced menu. If equal -1 it will be added 'behind' the last created item (default setting).
menuentry | [optional] Allows you to define the entry number to be created. The entries are numbered starting at 0. If equal -1 it will be added 'behind' the last created entry (default setting).
menuradioitem | [optional] 0 (default) = create a normal menuitem, 1 = create a menuradioitem.

Return Value

Success: | Returns the identifier (controlID) of the new tray menuitem.
Failure: | Returns 0.

Remarks

If the 'text' parameter is a blank string ( "" ) then a separator line is created.
By default, normal checked menuitems (not radio menuitems) will be automatically unchecked if you click it!
To turn off this behaviour use the value '2' in TrayMenuMode.
Radio menuitems are automatically grouped together and these groups are separated by a separator line or a normal item which is not a radio item.
By default, a clicked radio menuitem will be checked automatically and all other radio items in the same group will be unchecked!
To turn off this behaviour use the value '8' in TrayMenuMode.

Related

TrayItemSetState, TrayItemSetText

Example

; ****************
; * First sample *
; ****************
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
$prefsitem = TrayCreateItem("Preferences")
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $prefsitem
Msgbox(64, "Preferences:", "OS:" & @OSVersion)
Case $msg = $aboutitem
Msgbox(64, "About:", "AutoIt3-Tray-sample.")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit
; *****************
; * Second sample *
; *****************
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
; Let's create 2 radio menuitem groups
$radio1 = TrayCreateItem("Radio1", -1, -1, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$radio2 = TrayCreateItem("Radio2", -1, -1, 1)
$radio3 = TrayCreateItem("Radio3", -1, -1, 1)
TrayCreateItem("") ; Radio menuitem groups can be separated by a separator line or another norma menuitem
$radio4 = TrayCreateItem("Radio4", -1, -1, 1)
$radio5 = TrayCreateItem("Radio5", -1, -1, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$radio6 = TrayCreateItem("Radio6", -1, -1, 1)
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64, "About:", "AutoIt3-Tray-sample with radio menuitem groups.")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit