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

_Example()

Func _Example()
	Local $hGUI, $hGraphics, $hBrush, $hRegion1, $hRegion2

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

	$hGUI = GUICreate("Рисует заполненный регион", 400, 300)
	GUISetState()

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

	; Создаёт регионы
	$hRegion1 = _GDIPlus_RegionCreateFromRect(_GDIPlus_RectFCreate(50, 50, 200, 200))
	$hRegion2 = _GDIPlus_RegionCreateFromRect(_GDIPlus_RectFCreate(100, 100, 50, 50))

	; Объединяет регионы с флагом 3 (XOR), исключая 2-ой из 1-ой
	_GDIPlus_RegionCombineRegion($hRegion1, $hRegion2, 3)

	; Создаёт кисть, чтобы заполнить внутреннее пространство региона
	$hBrush = _GDIPlus_BrushCreateSolid(0xFF208080)

	; Рисует заполненный регион
	_GDIPlus_GraphicsFillRegion($hGraphics, $hRegion1, $hBrush)

	Do
	Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

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