Что нового

[Элементы GUI] Обновление объектов, созданных GUICtrlCreateGraphic

RomchegChe

Новичок
Сообщения
37
Репутация
1
Здравствуйте, Уважаемые!
Пытаюсь сделать простейшую изменяемую графику, создаю прямоугольник и хочу что бы он постепенно уменьшался

Код:
#include <GUIConstantsEx.au3>
$guiMain =GUICreate("main",320, 170, 1000, 530) 
$InfoGraphic = GUICtrlCreateGraphic(0, 0, 200, 10, 0) 
GUICtrlSetGraphic($InfoGraphic, $GUI_GR_COLOR, 0xff0000, 0xff0000)
GUICtrlSetGraphic($InfoGraphic, $GUI_GR_RECT, 0, 0, 200, 10)
GUISetState(@SW_SHOW, $guiMain) 
$n = 1

Do
   $msg = GUIGetMsg()
   Sleep(100)
   GUICtrlSetGraphic($InfoGraphic, $GUI_GR_COLOR, 0xff0000, 0xff0000)
   GUICtrlSetGraphic($InfoGraphic, $GUI_GR_RECT, 0, 0, 200 - $n, 10)
   $n = $n + 1
Until $msg = $GUI_EVENT_CLOSE
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
GUICtrlSetGraphic
$GUI_GR_REFRESH - Обновить элемент Graphic.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
RomchegChe [?]
создаю прямоугольник и хочу что бы он постепенно уменьшался
Можно с Label сделать, примерно так.
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $iStep = 1, $iWidth = 300, $hGUI, $iLabel

$hGUI = GUICreate('Test', 320, 200)
$iLabel = GUICtrlCreateLabel('', 10, 50, $iWidth, 8, -1, BitOR($WS_EX_CLIENTEDGE, $GUI_WS_EX_PARENTDRAG))
GUICtrlSetBkColor($iLabel, 0xFF0000)
GUISetState()

AdlibRegister('_ChangeLabelWidth', 30)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _ChangeLabelWidth()
	Switch $iWidth
		Case 0, 300
			$iStep *= -1
	EndSwitch
	$iWidth += $iStep
	GUICtrlSetPos($iLabel, 10, 50, $iWidth)
EndFunc   ;==>_ChangeLabelWidth
 
Верх