Функция _SetCoor

         Описание функции


_SetCoor

Корректирует координаты для отображения окна в рабочей области экрана

#Include <UserGUI.au3>
_SetCoor ( ByRef $aWHXY [, $iMinWidth = 0 [, $iMinHeight = 0 [, $iStyle = 2 [, $iFixed = 0 [, $iMargin = 0 ]]]]] )

Параметры

$aWHXY Массив следующего формата:
    [0] - Ширина окна
    [1] - Высота окна
    [2] - X-координата окна
    [3] - Y-координата окна
$iMinWidth [необязательный] Минимальная ширина окна
$iMinHeight [необязательный] Минимальная высота окна
$iStyle [необязательный] Стиль окна, который определяет ширину границ
    0 - Окно без границ, ширина границы 0 пиксель
    1 - Окно со стилем $WS_BORDER, обычно ширина этой границы 1 пиксель
    2 - (по умолчанию) Окно не изменяемое в размерах, обычно ширина этой границы 3 пикселя
    3 - Окно изменяемое в размерах ($WS_OVERLAPPEDWINDOW), обычно ширина этой границы 4 пикселя (WinXP), 8 пиксель (Win7)
$iFixed [необязательный] Если 1, то исправляет Y-координату окна при помещении его снизу при отсутствии стиля $WS_CAPTION или $WS_DLGFRAME
$iMargin [необязательный] Отступ от краёв

Возвращаемое значение

Успех:Возвращает массив с корректными координатами

Примечания

Функция предназначена для коррекции координат прочитанных из ini-файла.

Внимание! При сохранении координат необходимо от координат окна отнять координаты левого верхнего угла рабочей области.

При чтении из ini-файла значения ширины и высоты могут быть преобразованы с помощью функции Number, а координаты X и Y не должны быть преобразованы в числа, так как для пустой строки, интерпретируемой как 0, возвращается значение -1, чтобы установить для GUICreate значения по умолчанию (в центре экрана).
Функция предназначена для защиты от ситуаций, когда программа на переносном устройстве запускается на разных ПК с разным разрешением экрана у монитора, или при сохранении координат выполненном в свёрнутом состоянии окна (закрытие окна с панели задач). Окно всегда будет создано полностью видимым.
Минимальная ширина и высота восстанавливают минимальный размер окна, в случае сохранения с меньшими значениями.

Чтобы определить значения $iStyle и $iFixed, заставьте окно создастся в левом нижнем углу. Если оно плотно прилегает, то параметры выставлены верно.

Пример

; AZJIO
; http://www.autoitscript.com/forum/topic/151528-getchildcoor-setcoor/
#include <UserGUI.au3>

Local $aWHXY[4] = [10, 10, 3000, 1900] ; Задаём плохие параметры окна
_SetCoor($aWHXY, 200, 170) ; коррекция с отступом 20 и минимального размера 200 x 170

; Окно создастся видимым
$hGui = GUICreate('My program', $aWHXY[0], $aWHXY[1], $aWHXY[2], $aWHXY[3])
GUISetState()
Do
Until GUIGetMsg() = -3