Neues Projekt - Neue Probleme

  • Hallo Leute,
    nachdem mir bei meinen letzten Projekt so fantastisch unter die Arme
    gegriffen wurde - möchte ich euch heute wieder einige Fragen stellen.

    Wer nicht fragt - der nicht gewinnt :D

    Also ich möchte bei meinem neuen Projekt wieder eine Case Entscheidung machen
    die eine Funktion aktviert.
    Und in dieser Funktion soll ein .png in der GUI angezeigt werden.
    Das wars auch fürs erste ...

    Wie geht sowas ?

    mfg euer Wyd

  • {schaut staunend in den Examples Ordner ... und der war schon immer da?}


    Wie genau meinst du das?

    Sorry:
    AutoIt Ordner -> Examples ->GUI -> Advanced -> ShowPNG.au3

  • kann ich mit diesem Bsp Script ein PNG mit bestimmten Koordinaten auf der GUI erscheinen lassen ?

  • @ Wydliez
    es ist ja schön, dass du so interessiert bist, aber schau doch besser erstmal in die Suche des Forums oder unter Google, Bing, Yahoo, etc. nach, danke.

    Zudem wäre ein Script, welches du eventuell schon hast ganz gut.

    Zu deiner letzten frage: Ja natürlich. du musst nur das Script in zeile 27 anpassen, also diesen Befehl hier:

    [autoit]

    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)

    [/autoit]


    bzw. kannst du auch ( falls du die Größe des Bildes ändern/bestimmen möchtest ) diesen Befehl nutten:

    [autoit]

    _GDIPlus_GraphicsDrawImageRect()

    [/autoit]

    mfg
    Hauke

  • @Wydliez

    Habe mal eine PNG UDF geschrieben so werden die Bilder auch noch angezeigt wenn man das Fenster bewegt

    GUIImage
    [autoit]

    #include <GDIPlus.au3>

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

    Global $Graphic, $Counter, $Array[1][5]

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

    Func _GUIImageStart($Form)
    _GDIPlus_Startup()
    $Graphic = _GDIPlus_GraphicsCreateFromHWND($Form)
    EndFunc ;==>_GUIImageStart

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

    Func _GUICtrlCreateImage($Filename, $Left, $Top, $Width = False, $Height = False)
    $Counter += 1
    ReDim $Array[$Counter][6]
    $Array[$Counter - 1][0] = _GDIPlus_ImageLoadFromFile($Filename)
    If $Width = False Then $Width = _GDIPlus_ImageGetWidth($Array[$Counter - 1][0])
    If $Height = False Then $Height = _GDIPlus_ImageGetHeight($Array[$Counter - 1][0])
    $Array[$Counter - 1][1] = $Left
    $Array[$Counter - 1][2] = $Top
    $Array[$Counter - 1][3] = $Width
    $Array[$Counter - 1][4] = $Height
    GUIRegisterMsg(0x000F, "WM_PAINT")
    EndFunc ;==>_GUICtrlCreateImage

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

    Func WM_PAINT()
    For $i = 0 To UBound($Array) - 1
    _GDIPlus_GraphicsDrawImageRect($Graphic, $Array[$i][0], $Array[$i][1], $Array[$i][2], $Array[$i][3], $Array[$i][4])
    Next
    EndFunc ;==>WM_PAINT

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

    Func _GUIImageClose()
    For $i = 0 To UBound($Array) - 1
    _GDIPlus_ImageDispose($Array[$i][0])
    Next
    _GDIPlus_GraphicsDispose($Graphic)
    _GDIPlus_Shutdown()
    EndFunc ;==>_GUIImageClose

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
    GUIImage Example
    [autoit]

    #include <GUIImage.au3>

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

    $Form = GUICreate("Example",500,500)
    _GUIImageStart($Form)
    _GUICtrlCreateImage("Basketball.png", 10, 10, 100, 100)
    _GUICtrlCreateImage("Basketball.png", 199, 199, 100, 100)
    _GUICtrlCreateImage("Basketball.png", 300, 300)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case -3
    _GUIImageClose()
    Exit
    EndSwitch
    WEnd

    [/autoit]