GDIPlus. Einfacher Test, funktioniert nicht?

  • [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()
    Global $iWidth = 1000, $iHeight = 800
    $hGUI = GUICreate("", $iWidth, $iHeight)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    ;Erstmal das normale Grafik-Objekt erstellen.
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic)
    ;Statt uns mit dem normalen Frontbuffer zufrieden zu geben, erstellen wir erstmal eine
    ;Bitmap, mit Bezug auf unser Grafikobjekt.
    $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    ;Nachdem unser Bitmap erstellt ist, holen wir uns den Graphics Context. Dieser
    ;wird von uns verwendet, um darin zu zeichnen.
    _GDIPlus_GraphicsClear($hBackbuffer, 0xFFFFFFFF)
    _GDIPlus_GraphicsDrawString($hBackbuffer, "MAP wird geladen", 10, 10)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iWidth, $iHeight)
    GUISetState()

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

    Sleep(1000)

    [/autoit]


    Das einfache beispiel wollte ich grade Testen, aber es geht nicht?!
    Wo hab ich denn jetzt den Fehler?
    Ich sehe einfach nichts. nur die GUI. Aber weder Weiß, noch mit Text

  • Du musst das ganze nach GUISetState zeichnen, ansonsten verschwindet es.

    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()
    Global $iWidth = 1000, $iHeight = 800
    $hGUI = GUICreate("", $iWidth, $iHeight)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    ;Erstmal das normale Grafik-Objekt erstellen.
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic)
    ;Statt uns mit dem normalen Frontbuffer zufrieden zu geben, erstellen wir erstmal eine
    ;Bitmap, mit Bezug auf unser Grafikobjekt.
    $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    ;Nachdem unser Bitmap erstellt ist, holen wir uns den Graphics Context. Dieser
    ;wird von uns verwendet, um darin zu zeichnen.
    GUISetState()

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

    While 1
    Sleep(100)
    _GDIPlus_GraphicsClear($hBackbuffer, 0xFFFFFFFF)
    _GDIPlus_GraphicsDrawString($hBackbuffer, "MAP wird geladen", 10, 10)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0, $iWidth, $iHeight)
    WEnd

    [/autoit]
    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%

  • Hab ich auch grad gemerkt...
    Heute mittag ging ein solches beispiel, und ich dachte daran kann es nicht liegen.
    aber dann ist mir eingefallen, ich hab ja nur in den Backbuffer gezeichnet, und dann NACH dem SetState erst in den Frontbuffer kopiert...

  • Lösch den ersten Beitrag doch nicht. ;)

    Vielleicht ist er anderen Usern mal hilfreich.

    Zitat

    [Heute, 11:39] Raupi: Soll ich es dir machen?
    [Heute, 11:47] BugFix: "Soll ich es dir machen? " - also Raupi !! bitte nicht so öffentlich :rofl:

    Zitat

    [Heute, 11:51] BugFix: und ich werde es mir jetzt machen - das Mittagessen :P

    AMsg UDF v1.00.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%
    OwnStyle UDF Version 1.10.00 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 100%