Fenster transparent aber bild in der mitte nicht^^

  • Ich würde gerne ein komplett transparentes Vollbildfenster machen und in der mitte ein transparentes bild "einfügen"(keine ahnung was sich sonst schreiben soll^^)...
    Leider funkt das nicht so ganzzzzzzzz wie es sein soll ;)

    [autoit]

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

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

    ;-----------------------------
    $vorschau = GUICreate("Game", @desktopwidth, @desktopheight)
    GUISetState()
    WinSetTrans ($vorschau, "", 0) ;So mach ich das Fentser transparent
    $vorschaupic = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Benutzer\Desktop\Autoit\Game\nightentertainment.jpg", 300, 200, 550, 500)
    Sleep(2000)

    [/autoit]


    PS: Dieser code ist nur zum testen einer idee^^
    mfg
    @night@

  • Zitat

    Das kannste nur mit nem png-pic und gdiplus


    Ich dachte man man mit GUICTrlCreatePic(........)
    nur jpg und bmp einbauen?

  • thx für die antworten bis jetzt^^
    âber kann mir jemand ein beispiel zeigen??? ?(
    mfg
    @night@

  • Oder so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinApi.au3>

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

    #Region ### START Koda GUI section ### Form=
    $hwnd = GUICreate("Form1", 200, 200, Default, Default,$WS_POPUP, $WS_EX_LAYERED)
    GUISetBkColor (0xFFFFFF)
    $Pic1 = GUICtrlCreatePic(@WindowsDir & "\Angler.bmp", 30, 30, 125, 125, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    _WinAPI_SetLayeredWindowAttributes($hWnd, 0xFFFFFF, 255)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd
    Func _WinAPI_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $dwFlages = 0x03, $isColorRef = False)
    ; progandy
    If $dwFlages = Default Or $dwFlages = "" Or $dwFlages < 0 Then $dwFlages = 0x03
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $dwFlages)
    Select
    Case @error
    Return SetError(@error, 0, 0)
    Case $Ret[0] = 0
    Return SetError(4, _WinAPI_GetLastError(), 0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_WinAPI_SetLayeredWindowAttributes

    [/autoit]

    mfg. Jam00