Делаю окно, хочу, что бы было нельзя уменьшить окно меньше определённых размеров, например 800х400
Делаю так (оставил минимум элементов ):
В итоге продвижение границ окна останавливается на заданных размерах, а вот содержимое продолжает уменьшаться, да и рамка при этом промаргивает.
Нужно так же стопорить все элементы окна или у меня в корне неправильный подход?
Делаю так (оставил минимум элементов ):
Код:
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>
Global $hForm_ZaprosGUI, $hStatusBar_Main
Main()
Exit
Func Main()
$hForm_ZaprosGUI = GUICreate("Тест ресайза", 1001, 696+3, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX))
$hInput_Words = GUICtrlCreateInput("Строка запроса", 5, 10, 905, 21)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKRIGHT+$GUI_DOCKTOP+$GUI_DOCKHEIGHT)
$hButton_Find = GUICtrlCreateButton("Найти", 920, 8, 75, 25)
$hStatusBar_Main = _GUICtrlStatusBar_Create($hForm_ZaprosGUI)
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Return
EndFunc ;=> Main
Func WM_SIZE()
; минимально допустимые размеры главного окна
$iGUI_Width = 800
$iGUI_Height = 400
; обеспечим соблюдение минимальных размеров окна
$aWinClientSize = WinGetClientSize($hForm_ZaprosGUI)
If $aWinClientSize[0] < $iGUI_Width Then
WinMove($hForm_ZaprosGUI, "", Default, Default, $iGUI_Width, Default)
EndIf
If $aWinClientSize[1] < $iGUI_Height Then
WinMove($hForm_ZaprosGUI, "", Default, Default, Default, $iGUI_Height)
EndIf
; ресайзим строку состояния
_GUICtrlStatusBar_Resize($hStatusBar_Main)
EndFunc ;=> WM_SIZE
В итоге продвижение границ окна останавливается на заданных размерах, а вот содержимое продолжает уменьшаться, да и рамка при этом промаргивает.
Нужно так же стопорить все элементы окна или у меня в корне неправильный подход?