Функция TrayCreateItem

         Описание функции


TrayCreateItem

Создаёт пункт меню для иконки в трее.

TrayCreateItem ( text [, menuID = -1 [, menuentry = -1 [, menuradioitem = 0 ]]] )

Параметры

text Текст пункта меню.
menuID [необязательный] Позволяет создать вложенный пункт в указанном подменю. Если указан -1, то пункт добавляется после последнего созданного пункта (по умолчанию).
menuentry [необязательный] Позволяет установить очерёдность пункта в меню. Отсчёт начинается с 0. Если указан -1, то пункт добавляется после последнего созданного пункта (по умолчанию).
menuradioitem [необязательный]
0 = (по умолчанию) создать обычный пункт
1 = создать пункт как переключатель, радиокнопка (Radio).

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Если параметр text является пустой строкой ( "" ), тогда создаётся разделительная линия.

По умолчанию, если вы кликните отмеченный галочкой пункт (не радио-пункт), то он станет не отмеченным, и наоборот!
Чтобы отключить такое поведение используйте '2' в TrayMenuMode (пункты будут без галочек).

Радио-пункты автоматически группируются и эти группы разделяются либо обычной разделительной линией, либо пунктом не являющимся радио-пунктом.
По умолчанию, кликнутый радио-пункт становится отмеченным, а все другие радио-пункты в группе неотмеченными!
Чтобы отключить такое поведение используйте '8' в TrayMenuMode.

См. также

TrayItemSetState, TrayItemSetText, TrayGetMsg, TrayItemDelete, TrayItemSetOnEvent

Пример

#include <Constants.au3>
#NoTrayIcon

Opt("TrayMenuMode", 1 + 2) ; Не отображать в трее пункты меню по умолчанию (Script Paused/Exit) и не отмечать галочками при выборе.

; Создание двух групп радиопунктов в меню
$iRadio1 = TrayCreateItem("Радио1", -1, -1, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$iRadio2 = TrayCreateItem("Радио2", -1, -1, 1)
$iRadio3 = TrayCreateItem("Радио3", -1, -1, 1)

TrayCreateItem("") ; Группы радиопунктов в меню могут быть разделены разделителем или другим нормальным пунктом меню

$iRadio4 = TrayCreateItem("Радио4", -1, -1, 1)
$iRadio5 = TrayCreateItem("Радио5", -1, -1, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$iRadio6 = TrayCreateItem("Радио6", -1, -1, 1)

TrayCreateItem("") ; Создаёт разделитель

$iOSVersion = TrayCreateItem("Информация OS")
$iAbout = TrayCreateItem("О программе")
TrayCreateItem("")
$iExit = TrayCreateItem("Выход")

TraySetState(1) ; Показывает меню трея

While 1
    Switch TrayGetMsg()
        Case $iOSVersion
            MsgBox(64, "Информация OS:", "OS:" & @OSVersion)

        Case $iAbout
            MsgBox(4096, "", "Пример меню в трее." & @CRLF & @CRLF & _
                    "Версия AutoIt: " & @AutoItVersion & @CRLF & _
                    "Путь установки: " & StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) - 1))

        Case $iExit ; Выход
            ExitLoop
    EndSwitch
WEnd