#include <GDIP.au3>
#include <GUIConstantsEx.au3>

_Example()

Func _Example()
	Local $hGUI, $hGraphics, $hBrush, $iGraphicsCont, $tDstRect, $tSrcRect

	; Инициализирует библиотеку GDI+
	_GDIPlus_Startup()

	$hGUI = GUICreate("Создаёт графический контейнер", 400, 350)
	GUISetState()

	; Создаёт графический объект из дескриптора окна
	$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

	; Создаёт прямоугольник используемый графическим контейнером
	$tSrcRect = _GDIPlus_RectFCreate(0, 0, 200, 100)
	$tDstRect = _GDIPlus_RectFCreate(100, 100, 200, 200)

	; Создаёт графический контейнер размером (100, 100) с масштабом (1, 2)
	$iGraphicsCont = _GDIPlus_GraphicsBeginContainer($hGraphics, $tDstRect, $tSrcRect)

	; Создаёт заполненный эллипс в контейнере
	$hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000) ; Красный
	_GDIPlus_GraphicsFillEllipse($hGraphics, 0, 0, 100, 60, $hBrush)

	; Завершает контейнер и сбрасывает состояние graphics в состояние, которое было перед началом создания контейнера
	_GDIPlus_GraphicsEndContainer($hGraphics, $iGraphicsCont)

	; Заливка эллипса вне контейнера
	_GDIPlus_BrushSetFillColor($hBrush, 0xFF0000FF) ; Синий
	_GDIPlus_GraphicsFillEllipse($hGraphics, 0, 0, 100, 60, $hBrush)

	Do
	Until GUIGetMsg() = $GUI_EVENT_CLOSE

	; Освобождает ресурсы
	_GDIPlus_BrushDispose($hBrush)
	_GDIPlus_GraphicsDispose($hGraphics)

	; Закрывает библиотеку GDI+
	_GDIPlus_Shutdown()
EndFunc