Что нового

[Элементы GUI] кнопки трея

andreitrane

Новичок
Сообщения
141
Репутация
3
мне надо сделать чтобы когда окно открыто, кнопка трея называлась "Свернуть", а если окно свернуто, чтобы кнопка называлась "Развернуть"
делаю так, но название кнопки не меняется
Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("TrayMenuMode", 1)
$reidi19 = GUICreate("", 482, 446, 584, 197)
TraySetIcon("", -1)
TraySetClick(8)
$restore = TrayCreateItem("Свернуть")
$exit = TrayCreateItem("Выход")
GUISetState(@SW_SHOW)
While 1

$TrayMsg = TrayGetMsg()
    Switch $TrayMsg
		Case $restore
			if $flag = 0 Then
				GUISetState(@SW_HIDE, $reidi19)
				GUICtrlSetData($restore, "Развернуть")
				$flag = 1
				ElseIf $flag = 1 Then
            GUISetState(@SW_SHOW, $reidi19)
			GUICtrlSetData($restore, "Свернуть")
			$flag = 0
			EndIf
			Case $exit
            ExitLoop
	EndSwitch

	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
			EndSwitch

WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
andreitrane,
TrayItemSetText().
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

"[Элементы GUI] кнопки трея" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Администратор форума.











Что касается вопроса, я бы сделал так...

Код:
#include <GUIConstantsEx.au3>

Opt("TrayMenuMode", 1 + 2) ;2 это для отмены отметки у пунктов в трее
TraySetIcon("", -1)
TraySetClick(8)

$nRestore_TrayItem = TrayCreateItem("Свернуть")
$nExit_TrayItem = TrayCreateItem("Выход")

$hGUI = GUICreate("", 482, 446, 584, 197)
GUISetState(@SW_SHOW)

While 1
	$nTray_Msg = TrayGetMsg()
	$nGUI_Msg = GUIGetMsg()
	
    Switch $nTray_Msg
        Case $nRestore_TrayItem
            If BitAND(WinGetState($hGUI), 2) Then
                GUISetState(@SW_HIDE, $hGUI)
                TrayItemSetText($nRestore_TrayItem, "Развернуть")
			Else
				GUISetState(@SW_SHOW, $hGUI)
				TrayItemSetText($nRestore_TrayItem, "Свернуть")
            EndIf
		Case $nExit_TrayItem
            ExitLoop
	EndSwitch
	
    Switch $nGUI_Msg
        Case $GUI_EVENT_CLOSE
            Exit
	EndSwitch
WEnd
 
Верх