#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WinAPIEx.au3>
HotKeySet('{ESC}', 'Terminate')
$hGUI = GUICreate('', 900, 900, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
GUISetBkColor(0xABABAB)
GUISetState()
_WinAPI_SetLayeredWindowAttributes($hGUI, 0xABABAB, 0, $LWA_COLORKEY)
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hPenBlueThin = _GDIPlus_PenCreate(0xFF0000FF) ; ручка для синей линии
$hPenRedBold = _GDIPlus_PenCreate(0xFFFF0000, 2) ; ручка для красной точки
$hPenGreenBold = _GDIPlus_PenCreate(0xFF00FF00, 2) ; ручка для зеленой точки
$hEraser = _GDIPlus_PenCreate(0xFFABABAB, 2) ; стирающая ручка
$hBrushYellow = _GDIPlus_BrushCreateSolid(0xFFFFFF00) ; желтая кисть
$hBrushEraser = _GDIPlus_BrushCreateSolid(0xFFABABAB) ; стирающая кисть
$hFormat = _GDIPlus_StringFormatCreate() ; формат текста
$hFamily = _GDIPlus_FontFamilyCreate('Tahoma') ; шрифт текста
$hFont = _GDIPlus_FontCreate($hFamily, 10) ; размер шрифта
_DrawLine(10, 10, 400, 400) ; рисуем
Sleep(1500)
_EraseLine(10, 10, 400, 400) ; стираем
_DrawLine(90, 200, 600, 200)
Sleep(1500)
_EraseLine(90, 200, 600, 200)
_DrawLine(400, 10, 50, 600)
Sleep(1500)
_EraseLine(400, 10, 50, 600)
_DrawLine(100, 300, 50, 800)
Sleep(1500)
_EraseLine(100, 300, 50, 800)
Func _DrawLine($iStartX, $iStartY, $iEndX, $iEndY)
$iLineLength = Sqrt(($iStartX - $iEndX) ^ 2 + ($iStartY - $iEndY) ^ 2) ; длина отрезка по теореме Пифагора :D
$tLayout = _GDIPlus_RectFCreate($iStartX + 10, $iStartY + 10, 0, 0) ; координаты для надписи с длиной отрезка
_GDIPlus_GraphicsDrawStringEx($hGraphic, Round($iLineLength, 3) & ' pixel(s)', $hFont, $tLayout, $hFormat, $hBrushYellow) ; вывод надписи с длиной отрезка
_GDIPlus_GraphicsDrawEllipse($hGraphic, $iStartX - 2, $iStartY - 2, 4, 4, $hPenRedBold) ; точка СТАРТ
_GDIPlus_GraphicsDrawEllipse($hGraphic, $iEndX - 2, $iEndY - 2, 4, 4, $hPenGreenBold) ; точка ФИНИШ
_GDIPlus_GraphicsDrawLine($hGraphic, $iStartX, $iStartY, $iEndX, $iEndY, $hPenBlueThin) ; линия отрезка
EndFunc ;==>_DrawLine
Func _EraseLine($iStartX, $iStartY, $iEndX, $iEndY)
$iLineLength = Sqrt(($iStartX - $iEndX) ^ 2 + ($iStartY - $iEndY) ^ 2) ; длина отрезка по теореме Пифагора :D
$tLayout = _GDIPlus_RectFCreate($iStartX + 10, $iStartY + 10, 0, 0) ; координаты для надписи с длиной отрезка
_GDIPlus_GraphicsDrawStringEx($hGraphic, Round($iLineLength, 3) & ' pixel(s)', $hFont, $tLayout, $hFormat, $hBrushEraser) ; затираем надпись с длиной отрезка
_GDIPlus_GraphicsDrawEllipse($hGraphic, $iStartX - 2, $iStartY - 2, 4, 4, $hEraser) ; затираем СТАРТ
_GDIPlus_GraphicsDrawEllipse($hGraphic, $iEndX - 2, $iEndY - 2, 4, 4, $hEraser) ; затираем ФИНИШ
_GDIPlus_GraphicsDrawLine($hGraphic, $iStartX, $iStartY, $iEndX, $iEndY, $hEraser) ; затираем отрезок
EndFunc ;==>_EraseLine
; удаление ресурсов
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_BrushDispose($hBrushEraser)
_GDIPlus_BrushDispose($hBrushYellow)
_GDIPlus_PenDispose($hPenBlueThin)
_GDIPlus_PenDispose($hPenRedBold)
_GDIPlus_PenDispose($hPenGreenBold)
_GDIPlus_PenDispose($hEraser)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Func Terminate()
Exit
EndFunc ;==>Terminate