- Сообщения
- 8,671
- Репутация
- 2,481
Посмотрите на этот пример:
При нажатий на «Set Data», Checkbox поднимается немного вверх, хотя и не должен (см. Default в качестве параметров x/y у функций ControlMove). Впрочем проблема даже не в ControlMove или GUICtrlSetPos, проблема в том, что параметр Height (высота элемента) не совпадает с изначальным размером Checkbox'а, стоит только задать там 20, как всё становится на свои места.
Такое ощущение, что при попытке изменить размер элемента, AutoIt делает перерасчёт его высоты, методом вычитания наименьшего числа с наибольшего (с задаваемого и оригинального размера), причём это происходит всего один раз, при первой попытке изменить размер.
Т.е например если оригинальная высота это 20, а задаваемая 25, то элемент двигается на 5 вниз, и наоборот, если оригинальная высота 20, а задаваемая 15, то элемент двигается на 5 вверх.
У кого какие мысли будут по этому поводу?
Код:
#include <GUIConstantsEx.au3>
$hGUI = GUICreate("Test Script", 300, 200)
$nCheckBox = GUICtrlCreateCheckbox("Test", 20, 40, -1, 20)
$nButton = GUICtrlCreateButton("Set data", 20, 80, 60, 20)
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $nButton
ControlMove($hGUI, "", $nCheckBox, Default, Default, 60, 15)
;GUICtrlSetPos($nCheckBox, 20, 40, 60, 15)
GUICtrlSetData($nCheckBox, "Test #2")
EndSwitch
WEnd
При нажатий на «Set Data», Checkbox поднимается немного вверх, хотя и не должен (см. Default в качестве параметров x/y у функций ControlMove). Впрочем проблема даже не в ControlMove или GUICtrlSetPos, проблема в том, что параметр Height (высота элемента) не совпадает с изначальным размером Checkbox'а, стоит только задать там 20, как всё становится на свои места.
Такое ощущение, что при попытке изменить размер элемента, AutoIt делает перерасчёт его высоты, методом вычитания наименьшего числа с наибольшего (с задаваемого и оригинального размера), причём это происходит всего один раз, при первой попытке изменить размер.
Т.е например если оригинальная высота это 20, а задаваемая 25, то элемент двигается на 5 вниз, и наоборот, если оригинальная высота 20, а задаваемая 15, то элемент двигается на 5 вверх.
У кого какие мысли будут по этому поводу?