Hi @all
Ich habe mal ein wenig mit gdi + rumgetan und hab mal was gemacht
Spoiler anzeigen
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
$iCor1 = 390
$iAd1 = True
$iCor2 = 10
$iAd2 = True
; Erstellt eine GUI
$hGUI = GUICreate("GDI+", 400, 400, -1, -1, $WS_POPUP)
$hWnd = WinGetHandle("GDI+")
GUISetState()
; Zeichnet eine Linie
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$hPen = _GDIPlus_PenCreate()
_GDIPlus_GraphicsClear($hGraphic)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine($hGraphic, 10, 10, 390, 10, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine($hGraphic, 10, 390, 10, $iCor2, $hPen)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
Do
Sleep(100)
$cor2 = _NewLeftCor()
$Cor = _NewTopCor()
_WinAPI_RedrawWindow($hGUI)
_GDIPlus_GraphicsClear($hGraphic)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine($hGraphic, 10, 10, $Cor, 10, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFF00000)
_GDIPlus_GraphicsDrawLine($hGraphic, 10, 390, 10, $cor2, $hPen)
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Ressourcen freigeben
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Func _NewTopCor()
If $iAd1 = True Then
If $iCor1 <> 10 Then
$iCor1 -= 5
Return $iCor1
ElseIf $iCor1 = 10 Then
$iAd1 = Default
EndIf
ElseIf $iAd1 = Default Then
If $iCor1 <> 390 Then
$iCor1 += 10
Return $iCor1
ElseIf $iCor1 = 390 Then
$iAd1 = True
EndIf
EndIf
EndFunc ;==>_NewTopCor
Func _NewLeftCor()
If $iAd2 = True Then
If $iCor2 <> 390 Then
$iCor2 += 5
Return $iCor2
ElseIf $iCor2 = 390 Then
$iAd2 = Default
EndIf
ElseIf $iAd2 = Default Then
If $iCor2 <> 10 Then
$iCor2 -= 5
Return $iCor2
ElseIf $iCor2 = 10 Then
$iAd2 = True
EndIf
EndIf
EndFunc ;==>_NewLeftCor
Nur warum wird die linie einmal ganz lang wenn sie ganz unten war ????
Ich hätte auch noch ne frage , ob es auch kürzer gehen würde da es so sehr aufwändig ist
Danke für eure antworten
gruss Simon