GDI Plus Problem

  • Hi @all

    Ich habe mal ein wenig mit gdi + rumgetan und hab mal was gemacht

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $iCor1 = 390
    $iAd1 = True
    $iCor2 = 10
    $iAd2 = True

    [/autoit] [autoit][/autoit] [autoit]

    ; Erstellt eine GUI
    $hGUI = GUICreate("GDI+", 400, 400, -1, -1, $WS_POPUP)
    $hWnd = WinGetHandle("GDI+")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ; 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)

    [/autoit] [autoit][/autoit] [autoit]

    ; 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)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_PenSetColor($hPen, 0xFFF00000)
    _GDIPlus_GraphicsDrawLine($hGraphic, 10, 390, 10, $cor2, $hPen)
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit]

    ; Ressourcen freigeben
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    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

  • Hier das ganze mit der doppelten Bufferung:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 400
    Global Const $height = 400
    Global $graphics, $backbuffer, $bitmap, $Pen, $i = 10, $bool = 0
    Global $title = "GDI+ Beispiel"

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $hwnd = GUICreate($title, $width, $height, -1, -1, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd) ;erstelle GDI+ Objekt von der GUI (Grafik)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics) ;erstelle Bitmap von der Grafik
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap) ;erstelle Grafik Kontext von der Bitmap (dient für die Doppeltbufferung der Grafik, damit die Bewegungen flüssiger aussehen
    $pen = _GDIPlus_PenCreate(0, 4) ;erstelle Stift mit der Stärke 4 Pixels

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _GDIPlus_GraphicsClear($backbuffer) ;lösche Buffer
    _GDIPlus_PenSetColor($Pen, 0xFFFFFFFF) ;setze Stiftfarbe
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 10, $i, 10, $Pen) ;ziehe 1. Linie
    _GDIPlus_PenSetColor($Pen, 0xFFF00000) ;setze Stiftfarbe für den 2. Strich
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 390, 10, 400 - $i, $Pen) ;ziehe 2. Linie
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height) ;das Zeichnen hat im Buffer stattgefunden. Damit das Ganze sichtbar wird, kopiere den Buffer (Bitmap) in den sichtbaren Bereich
    If Not $bool And $i < 390 Then
    $i += 5
    Else
    $bool = 1
    EndIf
    If $bool And $i > 10 Then
    $i -= 5
    Else
    $bool = 0
    EndIf
    Sleep(30)
    Until False

    [/autoit] [autoit][/autoit] [autoit]

    Func close()
    _GDIPlus_PenDispose($pen)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_Shutdown()
    WinClose($hwnd)
    Exit
    EndFunc

    [/autoit]

    Ich hoffe, dass du damit zurecht kommst! Ansonsten einfach fragen!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (29. Oktober 2009 um 23:04)

  • Ok danke

    Habs jetzt mal erweitert

    Spoiler anzeigen
    [autoit]


    ; coded by Simon
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 400
    Global Const $height = 400
    Global $graphics, $backbuffer, $bitmap, $Pen, $i = 10, $bool = 0
    Global $title = "GDI+ Beispiel"

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $hwnd = GUICreate($title, $width, $height, -1, -1, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd) ;erstelle GDI+ Objekt von der GUI (Grafik)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics) ;erstelle Bitmap von der Grafik
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap) ;erstelle Grafik Kontext von der Bitmap (dient für die Doppeltbufferung der Grafik, damit die Bewegungen flüssiger aussehen
    $pen = _GDIPlus_PenCreate(0, 3) ;erstelle Stift mit der Stärke 4 Pixels

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _GDIPlus_GraphicsClear($backbuffer) ;lösche Buffer
    _GDIPlus_PenSetColor($Pen, 0xFFFFFFFF) ;setze Stiftfarbe ;# weis +++++++++++++++++++++++++
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 10, $i, 10, $Pen) ;ziehe 1. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 390, 10, 400 - $i, $Pen) ;ziehe 2. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer,390,10,390,$i,$Pen);Ziehe 3. Linie
    _GDIPlus_PenSetColor($Pen, 0xFFF00000) ;setze Stiftfarbe für den 2. Strich ;# rot +++++++++++++++++++
    _GDIPlus_GraphicsDrawLine($backbuffer,$i,10,10,400-$i,$Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer,10,400-$i,400-$i,390,$Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer,390,$i,400 - $i,390,$Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer,$i,10,390,$i,$Pen)
    _GDIPlus_PenSetColor($Pen,0xFFFFFFFF)
    ;_GDIPlus_GraphicsDrawLine($backbuffer,10,,$Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer,400 - $i,390,390,390 ,$Pen) ;Ziehe Dritte Linie
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height) ;das Zeichnen hat im Buffer stattgefunden. Damit das Ganze sichtbar wird, kopiere den Buffer (Bitmap) in den sichtbaren Bereich
    If Not $bool And $i < 390 Then
    $i += 5
    Else
    $bool = 1
    EndIf
    If $bool And $i > 10 Then
    $i -= 5
    Else
    $bool = 0
    EndIf
    Sleep(30)
    Until False

    [/autoit] [autoit][/autoit] [autoit]

    Func close()
    _GDIPlus_PenDispose($pen)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_Shutdown()
    WinClose($hwnd)
    Exit
    EndFunc

    [/autoit]

    Wie kann man das jetz machen dass die linien des vierecks immer wieder die farbe wächseln???

  • du musst nur irgendwo per random farben auswählen

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 400
    Global Const $height = 400
    Global $graphics, $backbuffer, $bitmap, $Pen, $i = 10, $bool = 0
    Global $title = "GDI+ Beispiel"

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $hwnd = GUICreate($title, $width, $height, -1, -1, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd) ;erstelle GDI+ Objekt von der GUI (Grafik)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics) ;erstelle Bitmap von der Grafik
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap) ;erstelle Grafik Kontext von der Bitmap (dient für die Doppeltbufferung der Grafik, damit die Bewegungen flüssiger aussehen
    $Pen = _GDIPlus_PenCreate(0, 3) ;erstelle Stift mit der Stärke 4 Pixels

    [/autoit] [autoit][/autoit] [autoit]

    $color1 = 0xFF000000 + Random(3000, 65000, 1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $color1 = ' & $color1 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $color2 = 0xFF000000 + Random(3000, 65000, 1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $color2 = ' & $color2 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $color3 = 0xFF000000 + Random(3000, 65000, 1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $color3 = ' & $color3 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $col = 0xFFFFFF

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _GDIPlus_GraphicsClear($backbuffer) ;lösche Buffer
    _GDIPlus_PenSetColor($Pen, $color1) ;setze Stiftfarbe ;# weis +++++++++++++++++++++++++
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 10, $i, 10, $Pen) ;ziehe 1. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 390, 10, 400 - $i, $Pen) ;ziehe 2. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 390, 10, 390, $i, $Pen);Ziehe 3. Linie
    _GDIPlus_PenSetColor($Pen, $color2) ;setze Stiftfarbe für den 2. Strich ;# rot +++++++++++++++++++
    _GDIPlus_GraphicsDrawLine($backbuffer, $i, 10, 10, 400 - $i, $Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 400 - $i, 400 - $i, 390, $Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, 390, $i, 400 - $i, 390, $Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, $i, 10, 390, $i, $Pen)
    _GDIPlus_PenSetColor($Pen, $color3)
    ;_GDIPlus_GraphicsDrawLine($backbuffer,10,,$Pen)
    _GDIPlus_GraphicsDrawLine($backbuffer, 400 - $i, 390, 390, 390, $Pen) ;Ziehe Dritte Linie
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height) ;das Zeichnen hat im Buffer stattgefunden. Damit das Ganze sichtbar wird, kopiere den Buffer (Bitmap) in den sichtbaren Bereich
    If Not $bool And $i < 390 Then
    $i += 5
    Else
    $bool = 1

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    If $bool And $i > 10 Then
    $i -= 5
    Else
    $bool = 0
    $color1 = 0xFF000000 + Random(1000, $col, 1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $color1 = ' & $color1 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $color2 = 0xFF000000 + Random(1000, $col, 1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $color2 = ' & $color2 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $color3 = 0xFF000000 + Random(1000, $col, 1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $color3 = ' & $color3 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console


    EndIf
    Sleep(30)
    Until False

    [/autoit] [autoit][/autoit] [autoit]

    Func close()
    _GDIPlus_PenDispose($Pen)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_Shutdown()
    WinClose($hwnd)
    Exit
    EndFunc ;==>close

    [/autoit]
  • Das geht aber auch einfacher

    [autoit]

    _GDIPlus_PenSetColor($pen2, '0xFF' & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2))

    [/autoit]

    also sowas in der Art

    Spoiler anzeigen
    [autoit]

    ; coded by Simon
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 400
    Global Const $height = 400
    Global $graphics, $backbuffer, $bitmap, $Pen, $pen2, $i = 10, $bool = 0, $color = 1
    Global $title = "GDI+ Beispiel"

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $hwnd = GUICreate($title, $width, $height, -1, -1, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd) ;erstelle GDI+ Objekt von der GUI (Grafik)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics) ;erstelle Bitmap von der Grafik
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap) ;erstelle Grafik Kontext von der Bitmap (dient für die Doppeltbufferung der Grafik, damit die Bewegungen flüssiger aussehen
    $Pen = _GDIPlus_PenCreate(0, 3) ;erstelle Stift mit der Stärke 4 Pixels
    _GDIPlus_PenSetColor($Pen, 0xFFFFFFFF) ;setze Stiftfarbe ;# weis +++++++++++++++++++++++++
    $pen2 = _GDIPlus_PenCreate(0, 3) ;erstelle zweiten Stift mit der Stärke 4 Pixels

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _GDIPlus_GraphicsClear($backbuffer) ;lösche Buffer

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 10, $i, 10, $Pen) ;ziehe 1. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 390, 10, 400 - $i, $Pen) ;ziehe 2. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 390, 10, 390, $i, $Pen);Ziehe 3. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 400 - $i, 390, 390, 390, $Pen) ;Ziehe 4. Linie

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawLine($backbuffer, $i, 10, 10, 400 - $i, $pen2)
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 400 - $i, 400 - $i, 390, $pen2)
    _GDIPlus_GraphicsDrawLine($backbuffer, 390, $i, 400 - $i, 390, $pen2)
    _GDIPlus_GraphicsDrawLine($backbuffer, $i, 10, 390, $i, $pen2)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height) ;das Zeichnen hat im Buffer stattgefunden. Damit das Ganze sichtbar wird, kopiere den Buffer (Bitmap) in den sichtbaren Bereich
    If Not $bool And $i < 390 Then
    If $color Then
    _GDIPlus_PenSetColor($pen2, '0xFF' & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2) & Hex(Random(1, 255, 1), 2)) ;setze Stiftfarbe für den 2. Strich ;# random +++++++++++++++++++
    $color = Not $color
    EndIf
    $i += 5
    Else
    $color = Not $color
    $bool = 1
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $bool And $i > 10 Then
    $i -= 5
    Else
    $bool = 0
    EndIf
    Sleep(30)
    Until False

    [/autoit] [autoit][/autoit] [autoit]

    Func close()
    _GDIPlus_PenDispose($Pen)
    _GDIPlus_PenDispose($Pen2)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_Shutdown()
    WinClose($hwnd)
    Exit
    EndFunc ;==>close

    [/autoit]

    Einmal editiert, zuletzt von anno2008 (30. Oktober 2009 um 15:54)

  • Hi ihr beide!

    danke für eure beispiele
    habs mit dem von anno2008 gemacht da es mehr farben in seiner mgl. gibt

    Habs jetzt fertig und poste es in scripte

    gruss Simon

  • Zum Beispiel so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 400
    Global Const $height = 400
    Global Const $pi_div_180 = 4 * ATan(1) / 180
    Global $graphics, $backbuffer, $bitmap, $Pen, $i = 10, $bool = 0
    Global $r, $g, $b
    Global $title = "GDI+ Beispiel"

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $hwnd = GUICreate($title, $width, $height, -1, -1, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd) ;erstelle GDI+ Objekt von der GUI (Grafik)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics) ;erstelle Bitmap von der Grafik
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap) ;erstelle Grafik Kontext von der Bitmap (dient für die Doppeltbufferung der Grafik, damit die Bewegungen flüssiger aussehen
    _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 2) ;Antialiasing
    $pen1 = _GDIPlus_PenCreate(0xFFFFFFFF, 3) ;erstelle Stift mit der Stärke 4 Pixels
    $pen2 = _GDIPlus_PenCreate(0, 3)

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _GDIPlus_GraphicsClear($backbuffer) ;lösche Buffer

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 10, $i, 10, $Pen1) ;ziehe 1. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer, 10, 390, 10, 400 - $i, $Pen1) ;ziehe 2. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer,390,10,390,$i,$Pen1);Ziehe 3. Linie
    _GDIPlus_GraphicsDrawLine($backbuffer,400 - $i,390,390,390 ,$Pen1) ;Ziehe Dritte Linie

    [/autoit] [autoit][/autoit] [autoit]

    $r = (Sin($i / 96) + 1) * 256
    $g = (Sin($i / 64) + 1) * 256
    $b = (Sin($i / 32) + 1) * 256

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_PenSetColor($Pen2, "0xFF" & Hex($r, 2) & Hex($g, 2) & Hex($b, 2)) ;setze Stiftfarbe für den 2. Strich ;# rot +++++++++++++++++++

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawLine($backbuffer,$i,10,10,400-$i,$Pen2)
    _GDIPlus_GraphicsDrawLine($backbuffer,10,400-$i,400-$i,390,$Pen2)
    _GDIPlus_GraphicsDrawLine($backbuffer,390,$i,400 - $i,390,$Pen2)
    _GDIPlus_GraphicsDrawLine($backbuffer,$i,10,390,$i,$Pen2)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, 0, 0, $width, $height) ;das Zeichnen hat im Buffer stattgefunden. Damit das Ganze sichtbar wird, kopiere den Buffer (Bitmap) in den sichtbaren Bereich
    If Not $bool And $i < 390 Then
    $i += 5
    Else
    $bool = 1
    EndIf
    If $bool And $i > 10 Then
    $i -= 5
    Else
    $bool = 0
    EndIf
    Sleep(30)
    Until False

    [/autoit] [autoit][/autoit] [autoit]

    Func close()
    _GDIPlus_PenDispose($pen1)
    _GDIPlus_PenDispose($pen2)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_Shutdown()
    WinClose($hwnd)
    Exit
    EndFunc

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    3 Mal editiert, zuletzt von UEZ (30. Oktober 2009 um 21:37)