GDI+ - Bild wird nicht angezeigt

  • Da bin ich wieder... Vieles is ausm Gedächtnis gelöscht~

    Aber dennoch:

    [autoit]

    #include <GDIPlus.au3>

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

    _GDIPlus_Startup ()
    $hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir&'\chat_main_body.png')
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
    _GDIPlus_GraphicsDrawImage ($hGraphic, $hImage1, 20, 20)

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

    Sleep(3000)

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage1)
    _GDIPlus_ShutDown()

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

    Exit

    [/autoit]

    Keine Fehlermeldung - Bild wird trotzdem nicht angezeigt.
    Bild an sich ist natürlich vorhanden, Pfad stimmt auch.

    Einmal editiert, zuletzt von mipez (11. Oktober 2011 um 19:07)

  • mach das mit hGraphics mal so:

    [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)

    [/autoit]


    ansonsten stimmen die Befehle, nur ich würde mir mal überlegen, worauf er das zeichnen soll, da liegt der eigentliche Fehler.

    mfg
    Hauke

  • mach das mit hGraphics mal so:

    [autoit]

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)

    [/autoit]


    ansonsten stimmen die Befehle, nur ich würde mir mal überlegen, worauf er das zeichnen soll, da liegt der eigentliche Fehler.

    mfg
    Hauke

    Jo, vllt sollte ich erwähnen, dass ich das PNG alleinstehend gezeichnet haben will, wenn ich die GUI auf transparent setze... wird die GUI halt transparent xD

    Einmal editiert, zuletzt von mipez (11. Oktober 2011 um 18:14)

  • Du benötigst ein Fenster auf das du das Bild zeichnen kannst.
    Um das Bild "alleinstehend" zu bekommen, kannst du $WS_POPUP als Style angeben

    Spoiler anzeigen
    [autoit]

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

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

    Opt("GUIOnEventMode", 1)

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

    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\chat_main_body.png')
    $iImgW = _GDIPlus_ImageGetWidth($hImage)
    $iImgH = _GDIPlus_ImageGetHeight($hImage)

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

    $hGui = GUICreate("", $iImgW, $iImgH, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)

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

    GUIRegisterMsg($WM_PAINT, "WM_PAINT")
    GUIRegisterMsg($WM_ERASEBKGND, "WM_PAINT")
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func WM_PAINT($hWnd, $uMsgm, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, 0, 0, $iImgW, $iImgH)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_PAINT

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

    Func _Exit()
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    E