ViSiToR
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору AZJIO 00:37 27-10-2010 Цитата: -40 это на панель задач. А добится чтоб это автоматически определялось непонятно как | Почему непонятно, панель задача тоже окно: Код: Добавлено: Хотя правильнее конечно будет так: Код: Func WM_GETMINMAXINFO($hWnd, $iMsg, $wParam, $lParam) Local $aWorkArea = _WinAPI_GetWorkingArea() 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", 410) ; минимальные размеры окна DllStructSetData($tMINMAXINFO, "MinTrackSizeY", 200) DllStructSetData($tMINMAXINFO, "MaxPositionX", $aWorkArea[0]) DllStructSetData($tMINMAXINFO, "MaxPositionY", $aWorkArea[1]) DllStructSetData($tMINMAXINFO, "MaxSizeX", 600) ; размеры развёрнутого состояния ( просто удали строку, чтоб игнорировать критерий) DllStructSetData($tMINMAXINFO, "MaxSizeY", $aWorkArea[3]-$aWorkArea[1]) EndIf EndFunc Func _WinAPI_GetWorkingArea() Local Const $SPI_GETWORKAREA = 48 Local $stRECT = DllStructCreate("long; long; long; long") Local $SPIRet = DllCall("User32.dll", "int", "SystemParametersInfo", "uint", $SPI_GETWORKAREA, "uint", 0, "ptr", DllStructGetPtr($stRECT), "uint", 0) If @error Then Return 0 If $SPIRet[0] = 0 Then Return 0 Local $sLeftArea = DllStructGetData($stRECT, 1) Local $sTopArea = DllStructGetData($stRECT, 2) Local $sRightArea = DllStructGetData($stRECT, 3) Local $sBottomArea = DllStructGetData($stRECT, 4) Local $aRet[4] = [$sLeftArea, $sTopArea, $sRightArea, $sBottomArea] Return $aRet EndFunc |
---------- ViSiToR a.k.a CreatoR CreatoR это не ник, CreatoR это стиль жизни! |
| Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:43 27-10-2010 | Исправлено: ViSiToR, 01:53 27-10-2010 |
|