funktion um einfach ein png zu verwenden.

  • ich hab mir mal die beispielfunktion so zurechtgeschnitten, dass ich einfach ein png verwenden kann... evt kanns noch wer gebrauchen:

    Anwendung ist selbsterklärend. -> _drawpng($pnggui,$pngpic, $pngx, $pngy)

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

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

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

    $hGUI999 = GUICreate("Show PNG", 250, 250)
    GUISetState()

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

    _drawpng($hGUI999, "blankavatar.png", 10, 10)

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

    ; Loop until user exits
    do
    until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _drawpng($pnggui,$pngpic, $pngx, $pngy)
    Local $hImage999, $hGraphic999, $hImage999

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

    ; Load PNG image
    _GDIPlus_StartUp()
    $hImage999 = _GDIPlus_ImageLoadFromFile($pngpic)
    $hGraphic999 = _GDIPlus_GraphicsCreateFromHWND($pnggui)

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

    ; Draw PNG image
    _WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic999, $hImage999, $pngx, $pngy)
    _WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_VALIDATE)

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

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic999)
    _GDIPlus_ImageDispose($hImage999)
    _GDIPlus_ShutDown()
    EndFunc

    [/autoit]
  • Hallo,

    Habe gerade auch so eine Funktion gebraucht:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    InetGet("http://upload.wikimedia.org/wikipedia/commons/7/7a/Basketball.png",@ScriptDir & "\Ball.png")

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

    $hGUI = GUICreate("")
    $cBasketball = GUICtrLCreatePng($hGUI,@ScriptDir & "\Ball.png",20,20)
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $cBasketball
    MsgBox(0,"","Du hast den Ball angeklickt!")
    EndSwitch
    WEnd

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

    Func GUICtrlCreatePng($hWnd, $sPath, $iX, $iY) ; SEuBo
    _GDIPlus_Startup()
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend, $hGUI
    Local $hImage = _GDIPlus_ImageLoadFromFile($sPath), $iWidth = _GDIPlus_ImageGetWidth($hImage), $iHeight = _GDIPlus_ImageGetHeight($hImage)
    $hGUI = GUICreate("", $iWidth, $iHeight, $iX, $iY, 0x80000000, BitOR(0x40, 0x80000), $hWnd)
    $cLabel = GUICtrlCreateLabel("", 0, 0, $iWidth, $iHeight)
    GUICtrlSetBkColor(-1, -2)
    GUISetState(@SW_SHOWNOACTIVATE, $hGUI)
    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate("int X;int Y")
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $iWidth)
    DllStructSetData($tSize, "Y", $iHeight)
    $tSource = DllStructCreate("int X;int Y")
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate("byte Op;byte Flags;byte Alpha;byte Format")
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    GUISwitch($hWnd)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Return SetError(0,$hGUI,$cLabel)
    EndFunc ;==>GUICtrlCreatePng

    [/autoit]