WM_GETMINMAXINFO
Устанавливает ограничения на минимальные и максимальные размеры окна, позицию и размеры развёрнутого состояния.
Параметры
Указанные параметры передаются системой.$wParam | - |
$lParam |
Указатель на структуру |
Примечания
Смотрите функцию GUIRegisterMsg. Сообщение выполняется при перемещении окна, сворачивании и изменении размеров.Пример
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $k = 0
$Gui = GUICreate("WM_GETMINMAXINFO", 390, 140, -1, -1, $WS_OVERLAPPEDWINDOW)
GUICtrlCreateLabel('Функция WM_GETMINMAXINFO выполняется при перемещении окна, сворачивании и изменении размеров. Позволяет установить пределы увеличения и уменьшения окна, как по горизонтали, так и по вертикали индивидуально. А также позицию и размеры развёрнутого состояния. Установочные параметры можно игнорировать указав только необходимые параметры.', 5, 5, 360, 130)
GUISetState()
GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO")
Do
Until GUIGetMsg() = -3
Func WM_GETMINMAXINFO($hWnd, $iMsg, $wParam, $lParam)
#forceref $iMsg, $wParam
$k += 1
WinSetTitle($Gui, '', 'Попытка ' & $k & ' раз')
If $hWnd = $Gui Then
Local $tMINMAXINFO = DllStructCreate("int;int;" & _
"int MaxSizeX; int MaxSizeY;" & _
"int MaxPositionX;int MaxPositionY;" & _
"int MinTrackSizeX; int MinTrackSizeY;" & _
"int MaxTrackSizeX; int MaxTrackSizeY", _
$lParam)
DllStructSetData($tMINMAXINFO, "MinTrackSizeX", 360) ; минимальные размеры окна
DllStructSetData($tMINMAXINFO, "MinTrackSizeY", 130)
DllStructSetData($tMINMAXINFO, "MaxTrackSizeX", 460) ; максимальные размеры окна
DllStructSetData($tMINMAXINFO, "MaxTrackSizeY", 180)
DllStructSetData($tMINMAXINFO, "MaxSizeX", 400) ; размеры развёрнутого состояния ( просто удали строку, чтоб игнорировать критерий)
DllStructSetData($tMINMAXINFO, "MaxSizeY", 180)
DllStructSetData($tMINMAXINFO, "MaxPositionX", 400) ; позиция в развёрнутом состоянии
DllStructSetData($tMINMAXINFO, "MaxPositionY", 450)
EndIf
Return $GUI_RUNDEFMSG
EndFunc