Что нового

Как чтобы окно принудительно разворачивалось на весь экран?

agikon

Знающий
Сообщения
789
Репутация
16
Какой командой окно можно развернуть на весь экран ?
то есть практически сделать то что делает средняя кнопочка управления каждым окном. ну от видите в каждом окне есть три кнопочки-свернуть, развернуть и закрыть.
Так фактически как окну послать вот эту команду средней кнопочки?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
agikon,
Посмотрите флаги к функции WinSetState().
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Перед тем как разворачивать, можно убедиться, что программа свернута:

Код:
if WinGetState("ИМЯ ПРОГРАММЫ") = 23 Then
	WinSetState("ИМЯ ПРОГРАММЫ", "", @SW_MAXIMIZE)
EndIf
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Suppir [?]
Перед тем как разворачивать, можно убедиться, что программа свернута:
ИМХО, так правильнее:
Код:
$sTitle = 'My Window'
If (BitAND(WinGetState($sTitle), 1) And Not BitAND(WinGetState($sTitle), 32)) Then
	WinSetState($sTitle, '', @SW_MAXIMIZE)
EndIf
;или
$sTitle = 'My Window'
If WinExists($sTitle) Then
	If Not BitAND(WinGetState($sTitle), 32) Then
		WinSetState($sTitle, '', @SW_MAXIMIZE)
	EndIf
EndIf


Код:
$sTitle = '[ACTIVE]'

$sInfo = 'Окно:' & @LF
Dim $aState[7][2] = [[6],[1, 'существует'],[2, 'отображается'],[4, 'доступно'], _
		[8, 'активно'],[16, 'свёрнуто'],[32, 'развёрнуто']]

$hWin = WinGetHandle($sTitle)
If $hWin Then
	$sInfo &= WinGetTitle($hWin) & @LF
	For $i = 1 To $aState[0][0]
		If BitAND(WinGetState($hWin), $aState[$i][0]) Then $sInfo &= $aState[$i][1] & @LF
	Next
	MsgBox(64, 'Info', StringTrimRight($sInfo, 1))
Else
	MsgBox(16, 'Error', 'Нет такого окна')
EndIf
 
Верх