Что нового

[Элементы GUI] Сворачивание или разворачивание GUI окна по сочетанию клавиш

cobra2029

Новичок
Сообщения
54
Репутация
0
Собственно вопрос в теме: как заставить GUI "окно" сворачиваться или разворачиваться по сочетанию клавиш?

желательно с примером.

P.S. справку по GUISetState(@SW_Hide) прочитал но видать чё-то не понял


всё получилось. сори за тупость )
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
HotKeySet('{ESC}', '_HideShow')

Global $State = 0

$GUI = GUICreate('TEST', 400, 300)
GUISetState()

While 1
	Switch GUIGetMsg()
        Case -3
            Exit
    EndSwitch
WEnd

Func _HideShow()
	If $State = 0 Then
		GUISetState(@SW_MINIMIZE)
		$State = 1
	Else
		GUISetState(@SW_RESTORE)
		$State = 0
	EndIf
EndFunc
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
madmasles, я проверил с помощью:
Код:
MsgBox(0, '', WinGetState($GUI))

и мне выдало число 15 :smile:

PS Да, я знаю, возможно это не совсем правильно, но мне так удобней.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Zaramot [?]
возможно это не совсем правильно, но мне так удобней
Скорее совсем неправильно, у окна могут быть и другие атрибуты (состояния), в случае чего проверка завершится неудачей.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
madmasles
CreatoR

Скорей всего я не прав, и по этому я сделал по другому (исправил скрипт).
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Zaramot,
Так тоже можно :smile:
Код:
Global $fState

HotKeySet('{ESC}', '_HideShow')

$GUI = GUICreate('TEST')
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd

Func _HideShow()
	$fState = Not $fState
	If $fState Then
		GUISetState(@SW_HIDE)
	Else
		GUISetState(@SW_SHOW)
	EndIf
EndFunc   ;==>_HideShow
 
Верх