GDIPlus Größe ändern?

  • Hallo,
    kann man mit GDIPlus die z.B. Größe eines Rechtecks nachträglich ändern? Ich hab' noch nicht sehr viel Erfahrung mit GDIPlus, ich hoffe, ihr könnt mir helfen.

    Spoiler anzeigen
    [autoit]


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

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

    _Main()

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

    Func _Main()

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

    $hGUI = GUICreate("GDI+", 320, 320)
    $hWnd = WinGetHandle("GDI+")
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hPen = _GDIPlus_PenCreate(0xFFFF0000)
    _GDIPlus_GraphicsDrawRect($hGraphic, 10, 10, 300, 300, $hPen)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

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

    EndFunc ;==>_Main

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Nachträglich ändern?

    Du musst es neumalen und die Koordinaten speichern, die dann immer mit GUIRegisterMsg paint event neu malen.

    Spoiler anzeigen
    [autoit]

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

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

    $kordX=10
    $kordY=10
    $kordW=300
    $kordH=300

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

    $hGUI = GUICreate("GDI+", 320, 320)
    $hWnd = WinGetHandle("GDI+")
    GUISetState()

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

    GUIRegisterMsg(0x000F,"wm_paint")

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hPen = _GDIPlus_PenCreate(0xFFFF0000)
    $Radierer = _GDIPlus_PenCreate(0xFFE2E2E2)
    _GDIPlus_GraphicsDrawRect($hGraphic, 10, 10, 300, 300, $hPen)

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

    For $i=1 To 20 Step +1
    $kordX+=3
    $kordY+=3
    $kordW-=3*2
    $kordH-=3*2
    _GDIPlus_GraphicsDrawRect($hGraphic, $kordX-3, $kordY-3, $kordW+3*2, $kordH+3*2, $Radierer)
    _GDIPlus_GraphicsDrawRect($hGraphic, $kordX, $kordY, $kordW, $kordH, $hPen)
    Sleep( 50 )
    Next

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_PenDispose($hPen)
    _GDIPlus_PenDispose($Radierer)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

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

    Func wm_paint()
    _GDIPlus_GraphicsDrawRect($hGraphic, $kordX, $kordY, $kordW, $kordH, $hPen)
    EndFunc

    [/autoit]