GUI minimieren.

  • Hallo :
    Ich möchte meine GUI ganz normal minimieren.
    Also wie wenn ich jetzt hier in chrome auf minimize klicke.
    in meiner task leiste bleibt es, und wenn ich wieder drauf klicke kommt es wieder.
    wenn ich die gui verstecke oder ganz lösche, ist in der task leiste nichts mehr.
    wie mach ich das ?
    hier mal meine gui, mit gdi+. könnte wichtig sein:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <ButtonConstants.au3>
    Opt("TrayMenuMode", 1 + 2)
    FileInstall("logo.png", @TempDir & "\logo.png", 1)
    FileInstall("Buttons/about.png", @TempDir & "\about.png", 1)
    FileInstall("Buttons/cheats.png", @TempDir & "\cheats.png", 1)
    FileInstall("Buttons/donate.png", @TempDir & "\donate.png", 1)
    FileInstall("Buttons/findgames.png", @TempDir & "\findgames.png", 1)
    FileInstall("Buttons/forum.png", @TempDir & "\forum.png", 1)
    FileInstall("Buttons/forumlogin.png", @TempDir & "\forumlogin.png", 1)
    FileInstall("Buttons/help.png", @TempDir & "\help.png", 1)
    FileInstall("Buttons/helpthread.png", @TempDir & "\helpthread.png", 1)
    FileInstall("Buttons/language.png", @TempDir & "\language.png", 1)
    FileInstall("Buttons/modifications.png", @TempDir & "\modifications.png", 1)
    FileInstall("Buttons/mods.png", @TempDir & "\mods.png", 1)
    FileInstall("Buttons/open premium options.png", @TempDir & "\open premium options.png", 1)
    FileInstall("Buttons/patchcheck.png", @TempDir & "\patchcheck.png", 1)
    FileInstall("Buttons/play.png", @TempDir & "\play.png", 1)
    FileInstall("Buttons/projects.png", @TempDir & "\projects.png", 1)
    FileInstall("Buttons/trainer.png", @TempDir & "\trainer.png", 1)
    FileInstall("Buttons/upgrade to premium.png", @TempDir & "\upgrade to premium.png", 1)
    FileInstall("Buttons/visit homepage.png", @TempDir & "\visit homepage.png", 1)
    fileinstall("reiter+exit+minimize/downloadsdark.png",@TempDir & "\downloadsdark.png",1)
    fileinstall("reiter+exit+minimize/downloadswhite.png",@TempDir & "\downloadswhite.png",1)
    fileinstall("reiter+exit+minimize/infosdark.png",@TempDir & "\infosdark.png",1)
    fileinstall("reiter+exit+minimize/infoswhite.png",@TempDir & "\infoswhite.png",1)
    fileinstall("reiter+exit+minimize/newsdark.png",@TempDir & "\newsdark.png",1)
    fileinstall("reiter+exit+minimize/newswhite.png",@TempDir & "\newswhite.png",1)
    fileinstall("reiter+exit+minimize/minimize.png",@TempDir & "\minimize.png",1)
    fileinstall("reiter+exit+minimize/close.png",@TempDir & "\close.png",1)
    Global $PNGSRCGUIBK = @TempDir & "\logo.png"
    Global $show = False
    Global Const $AC_SRC_ALPHA = 1
    Global Const $PROCESS_SUSPEND_RESUME = 2048
    Global Const $PROCESS_TERMINATE = 1
    Global $tray1 = TrayCreateItem("Hide/Restore")
    Global $tray2 = TrayCreateItem("Exit")
    _gui()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Button23
    ENDE()
    Case $Button22
    _hr
    EndSwitch
    $TMSG = TrayGetMsg()
    switch $TMSG
    case $tray1
    _hr()
    case $tray2
    ENDE()
    EndSwitch
    WEnd

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

    func _hr()
    msgbox(0,"","minimize grdückt")
    if $show = True then
    WinSetState($GUI, "", @SW_MINIMIZE)
    WinSetState($GUISUB, "", @SW_MINIMIZE)
    $show = False
    Else
    GUISetState(@SW_SHOW, $GUI)
    GUISetState(@SW_SHOW, $GUISUB)
    $show = True
    EndIf
    EndFunc
    func _gui()
    guidelete()
    Global $GUI = GUICreate("", 550, 700, -1, -1, $WS_POPUP, BitOR($WS_EX_CONTROLPARENT, $WS_EX_LAYERED))
    _GDIPlus_Startup()
    Global $HIMAGEGUIBK = _GDIPlus_ImageLoadFromFile($PNGSRCGUIBK)
    SETBITMAP($GUI, $HIMAGEGUIBK, 255)
    Global $GUISUB = GUICreate("", 550, 700, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $GUI)
    GUISetBkColor(5789784)
    _WinAPI_SetLayeredWindowAttributes($GUISUB, 5789784)
    ;gta sa
    Global $Button1 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\play.png", 27, 173)
    Global $Button2 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\patchcheck.png", 27, 209)
    Global $Button3 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\helpthread.png", 27, 246)
    Global $Button4 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\trainer.png", 27, 282)
    Global $Button5 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\cheats.png", 27, 318)
    Global $Button6 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\mods.png", 27, 354)
    ;options
    Global $Button7 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\upgrade to premium.png", 27, 450)
    Global $Button8 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\findgames.png", 27, 486)
    Global $Button9 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\modifications.png", 27, 522)
    Global $Button10 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\language.png", 27, 558)
    Global $Button11 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\help.png", 27, 594)
    Global $Button12 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\help.png", 27, 630)
    ;xarfanity studios
    Global $Button13 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\visit homepage.png", 27, 727)
    Global $Button14 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\projects.png", 27, 763)
    Global $Button15 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\about.png", 27, 799)
    Global $Button16 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\forum.png", 27, 835)
    Global $Button17 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\donate.png", 27, 871)
    Global $Button18 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\help.png", 27, 907)
    ;reiter
    Global $Button19 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\downloadswhite.png", 350,548)
    Global $Button20 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\infosdark.png", 467,548)
    Global $Button21 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\newsdark.png", 584,548)
    ;minimize+close
    Global $Button22 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\minimize.png", 950,35)
    Global $Button23 = _GuiCtrlCreatePic($GUISUB,@TempDir & "\close.png", 975,30)
    GUISetState(@SW_SHOW, $GUI)
    GUISetState(@SW_SHOW, $GUISUB)
    $show = True
    EndFunc

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

    Func SETBITMAP($HGUI, $HIMAGE, $IOPACITY)
    Local $HSCRDC, $HMEMDC, $HBITMAP, $HOLD, $PSIZE, $TSIZE, $PSOURCE, $TSOURCE, $PBLEND, $TBLEND
    $HSCRDC = _WinAPI_GetDC(0)
    $HMEMDC = _WinAPI_CreateCompatibleDC($HSCRDC)
    $HBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($HIMAGE)
    $HOLD = _WinAPI_SelectObject($HMEMDC, $HBITMAP)
    $TSIZE = DllStructCreate($TAGSIZE)
    $PSIZE = DllStructGetPtr($TSIZE)
    DllStructSetData($TSIZE, "X", _GDIPlus_ImageGetWidth($HIMAGE))
    DllStructSetData($TSIZE, "Y", _GDIPlus_ImageGetHeight($HIMAGE))
    $TSOURCE = DllStructCreate($TAGPOINT)
    $PSOURCE = DllStructGetPtr($TSOURCE)
    $TBLEND = DllStructCreate($TAGBLENDFUNCTION)
    $PBLEND = DllStructGetPtr($TBLEND)
    DllStructSetData($TBLEND, "Alpha", $IOPACITY)
    DllStructSetData($TBLEND, "Format", $AC_SRC_ALPHA)
    _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)
    EndFunc ;==>SETBITMAP
    Func ENDE()
    GUIDelete()
    GUIDelete()
    Exit
    EndFunc ;==>ENDE

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

    Func _GuiCtrlCreatePic($gGui, $iPicture, $iX = 0, $iY = 0)
    $gImage = _GDIPlus_ImageLoadFromFile($iPicture)
    $gWidth = _GDIPlus_ImageGetWidth($gImage)
    $gHeight = _GDIPlus_ImageGetHeight($gImage)

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

    $iGui = GUICreate("", $gWidth, $gHeight, $iX, $iY, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gGui)
    $iLabel = GUICtrlCreateLabel("", 0, 0, $gWidth, $gHeight)
    GUISetBkColor(0, $iGui)
    GUISetState(@SW_SHOW, $iGui)
    SetTransparentBitmap($iGui, $gImage)

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

    ;~ Local $iReturn[6] = [0, SetError(0, $iGui, $iLabel), $iX, $iY, $gWidth, $gHeight]

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

    Return SetError(0, $iGui, $iLabel)
    EndFunc

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

    Func SetTransparentBitmap($hGUI, $hImage, $iOpacity = 0xFF)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, 0, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    EndFunc ;==>SetTransparentBitmap

    [/autoit]

    3 Mal editiert, zuletzt von v1Dr333s (3. Januar 2013 um 18:32)

  • [autoit]


    GUISetState(@SW_MINIMIZE,$GUI)

    [/autoit]

    Versuch dass mal, vll liegt es einfach daran das du zwei Fenster hast.


    Edit: Wenn es nicht klappen sollte stell bitte ein Lauffähiges Script rein, die Varriable $AC_SRC_ALPHA finde ich nirgentwo 8|

  • problem selbst gelöst, ändere den code oben, falls es jemand braucht.

    Einmal editiert, zuletzt von v1Dr333s (3. Januar 2013 um 18:31)