Что нового

[Элементы 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 319
andreitrane,
TrayItemSetText().
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Предупреждение За нарушение правил форума (пункт Б.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
 
Верх