• Hallo Jungs, meine 2te GDI + Arbeit !!!


    Es ist ganz simpel zu bedienen, einfach Linke maustaste in das Fenster drücken und der Punkt bewegt sich (die Linien auch)

    Spoiler anzeigen
    [autoit]


    ;GDI + Sternchen zeichnen (anfang)
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    Global $Cursor = GUIGetCursorInfo()
    Global $GUIWidth = 500, $GUIHeight = 500
    Global $GUI_Back_Color = 0xFF000000 + 0xECE9D8
    $PenColor = 0xFF000000 + 0x7FA1E6
    _GDIPlus_Startup()
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("GDI+ by EM", 500, 500, -1, -1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $Graphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $Bitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $Graphic)
    $Backbuffer = _GDIPlus_ImageGetGraphicsContext($Bitmap)
    $Pen = _GDIPlus_PenCreate($PenColor)
    _FeldAnfangDraw()
    While 1
    $nMsg=GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()
    EndSwitch
    If _IsPressed("1B") and WinActive("GDI+ by EM") Then
    _Exit()
    EndIf
    If _IsPressed("01") Then
    _FeldDraw()
    EndIf
    WEnd

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

    Func _FeldDraw()
    If NOT WinActive("GDI+ by EM") Then
    _Exit()
    Else
    $Cursor = GUIGetCursorInfo()
    _GDIPlus_GraphicsClear($Backbuffer, $GUI_Back_Color)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 0,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500 , 0,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 500,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500, 500,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsFillEllipse($Backbuffer, $Cursor[0]-10, $Cursor[1]-10, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndIf
    EndFunc
    Func _FeldAnfangDraw()
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 0,250, 250)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500 , 0, 250, 250)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 500, 250, 250)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500, 500, 250, 250)
    _GDIPlus_GraphicsFillEllipse($Backbuffer, 240, 240, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndFunc
    Func _Exit()
    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_GraphicsDispose($Backbuffer)
    _GDIPlus_BitmapDispose($Bitmap)
    _GDIPlus_PenDispose($Pen)
    _GDIPlus_ShutDown()
    Exit
    EndFunc

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Nettes Beispiel :D

    Aber arbeite mal an deiner Codedarstellung

    [autoit]

    ;GDI + Sternchen zeichnen (anfang)
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    Global $Cursor = GUIGetCursorInfo()
    Global $GUIWidth = 500, $GUIHeight = 500
    Global $GUI_Back_Color = 0xFF000000 + 0xECE9D8
    $PenColor = 0xFF000000 + 0x7FA1E6
    _GDIPlus_Startup()
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("GDI+ by EM", 500, 500, -1, -1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $Graphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
    $Bitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $Graphic)
    $Backbuffer = _GDIPlus_ImageGetGraphicsContext($Bitmap)
    $Pen = _GDIPlus_PenCreate($PenColor)
    _FeldAnfangDraw()

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

    While 1
    $nMsg=GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()
    EndSwitch

    If _IsPressed("1B") and WinActive("GDI+ by EM") Then
    _Exit()
    EndIf

    If _IsPressed("01") Then
    _FeldDraw()
    EndIf
    WEnd

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

    Func _FeldDraw()
    If NOT WinActive("GDI+ by EM") Then
    _Exit()
    Else
    $Cursor = GUIGetCursorInfo()
    _GDIPlus_GraphicsClear($Backbuffer, $GUI_Back_Color)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 0,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500 , 0,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 500,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500, 500,$Cursor[0], $Cursor[1])
    _GDIPlus_GraphicsFillEllipse($Backbuffer, $Cursor[0]-10, $Cursor[1]-10, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndIf
    EndFunc

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

    Func _FeldAnfangDraw()
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 0,250, 250)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500 , 0, 250, 250)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 0 , 500, 250, 250)
    _GDIPlus_GraphicsDrawLine ($Backbuffer, 500, 500, 250, 250)
    _GDIPlus_GraphicsFillEllipse($Backbuffer, 240, 240, 20, 20)
    _GDIPlus_GraphicsDrawImageRect($Graphic, $Bitmap, 0, 0, $GUIWidth, $GUIHeight)
    EndFunc

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_GraphicsDispose($Backbuffer)
    _GDIPlus_BitmapDispose($Bitmap)
    _GDIPlus_PenDispose($Pen)
    _GDIPlus_ShutDown()
    Exit
    EndFunc

    [/autoit]
  • Du meinst das jetzt so oder:
    X
    (abstand1) a
    (abstand1)(abstand2)b
    (abstand1)(abstand2)/b
    (abstand1)/a
    /X
    Oder ?
    Danke :D

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal