Что нового

[Элементы GUI] Меню в трее. Как получить controlID подпункта меню или отследить событие выбора?

photozoom

Новичок
Сообщения
5
Репутация
0
Доброго времени суток!

Возникла такая задачка: создал меню в трее в котором есть пункты и есть подпункты:
Код:
$iSettings = TrayCreateMenu("Настройки")
$iDisplay = TrayCreateItem("Монитор", $iSettings)
$iPrinter = TrayCreateItem("Принтер", $iSettings)


Как быть, если количество подпунктов заранее не известно. Каким образом мне добавлять подпункты в меню, чтобы сохранилась возможность отследить нажатия на конкретный пункт меню? В приведенном выше примере это делается через Switch... Case и функцию TrayGetMsg() (см. пример кода для функции TrayCreateMenu)
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
Opt("TrayAutoPause", 0)

$iSettings = TrayCreateMenu("Настройки")
$iDisplay = TrayCreateItem("Монитор", $iSettings)
$iPrinter = TrayCreateItem("Принтер", $iSettings)

GUICreate("Menu")
$btn = GUICtrlCreateButton("Добавить пункт", 10, 10)
GUISetState()

Global $aItems[1] = [-1], $i = -1

While 1
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $btn
      $i += 1
      ReDim $aItems[$i + 1]
      $aItems[$i] = TrayCreateItem(Random(100, 200, 1), $iSettings)
  EndSwitch
  $ID = TrayGetMsg()
  Switch $ID
    Case $aItems[0] To $aItems[UBound($aItems) - 1]
      ConsoleWrite("ID пункта: " & $ID & @CRLF)
  EndSwitch
WEnd
 
Верх