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
#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
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
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
Func _GuiCtrlCreatePic($gGui, $iPicture, $iX = 0, $iY = 0)
$gImage = _GDIPlus_ImageLoadFromFile($iPicture)
$gWidth = _GDIPlus_ImageGetWidth($gImage)
$gHeight = _GDIPlus_ImageGetHeight($gImage)
$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)
;~ Local $iReturn[6] = [0, SetError(0, $iGui, $iLabel), $iX, $iY, $gWidth, $gHeight]
[/autoit] [autoit][/autoit] [autoit]Return SetError(0, $iGui, $iLabel)
EndFunc
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