GUI schließt sich wegen transparentem Button

  • Hallo,

    in meinem Script habe ich mein Button transparent gemacht. Der Button ist nun transparent, jedoch schließt sich mein Script wegen dem $GUI_BKCOLOR_TRANSPARENT
    sofort wieder. Kann mir da jemand helfen, sodass es sich nicht schließt?


    Script :

    • Offizieller Beitrag

    Ich frage mich wie du nur auf solche Ideen kommst?
    Wo in der Hilfe steht bitte geschrieben, das du $GUI_BKCOLOR_TRANSPARENT als Ex-Style beim erstellen des Button benutzen sollst?
    Um die Hintergrundfarbe zu setzen mußt du GUICtrlSetBkColor benutzen.

    Zitat von White

    in meinem Script habe ich mein Button transparent gemacht. Der Button ist nun transparent, jedoch schließt sich mein Script wegen dem $GUI_BKCOLOR_TRANSPARENT


    Diese Aussage bezieht sich auf reines Wunschdenken.

    Studier mal die Hilfe und kopier nicht so viel rum.

  • $GUI_BKCOLOR_TRANSPARENT , wenn du auf GUICtrlSetBkColorgehst, steht es der Hilfe ... allerdings steht dort nicht, dass man es auch für Buttons verwenden kann. Aber wenn ich mir mein Button angucke, bevor es sich schließt, sehe ich,dass es transparent ist.

    • Offizieller Beitrag

    Ich frage mich ob du die gleiche Hilfe benutzt, wie wir anderen. $GUI_BKCOLOR_TRANSPARENT steht nicht im Abschnitt von GUICtrlCreateButton und
    dort steht auch nicht das man es als 7. Parameter angeben soll.
    Wenn ich mir alle deine Threads anschaue , denke ich du kopiert einfach irgendwas zusammen und denkst dann, es muß schon irgendwie gehen.
    Oder du machst das um eine Ausrede zu haben, das jemand dein Script lauffähig machen soll.

    Zitat

    Aber wenn ich mir mein Button angucke, bevor es sich schließt, sehe ich,dass es transparent ist.


    Wenn ich das Script starte, sehe ich das der Button nicht erstellt wird, das ist auch der Grund warum das Script beendet wird.

  • Bin halt nicht so gut in solchen Sachen ... Deshalb schreibe ich jetzt noch mein Tool zu ende und dann höre ich evtl. auf mit diesem Autoit Kramm.

    Also es gibt ja keine Möglichkeit, einen Button transparent zu machen, außer ein Bild in den Button einzufügen, sodass es genau an der Stelle zum Bild passt?

    Und anstatt mich mal runter zu machen, könntest du mir auch mal etwas helfen ... >.>

  • Hallo csupenner,

    das Beispiel von ChrisL funktioniert mit Teiltransparenz, wenn man 0 also volltransparent einsetzt passiert das was passiern muss der Button ist unsichtbar kann noch nicht einmal geklickt werden (selbst wenn man auf die richtige Stelle klickt)

    @White, das Vorhaben ist unsinnig, wie soll der Benutzer einen Button klicken der nicht zu sehen ist.

    mfg autoBert

  • autoBert : Ich würde es dann an der Stelle bearbeiten, wo der Button wäre, den man nicht sehen kann, d.h. mit Photoshop dort einen Text mit paar Effekten erstellen, damit es besser aussieht und nicht die schlichte weiße Buttonfarbe zu sehen ist.

    MfG White

  • Hallo white,

    der Button kann bei Volltransparenz nicht geklickt werden d.H. du kannst ihn auch weglassen. Teste lieber dieses Skript:

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    ;aus Hilfe Beispielen zusammenkopiert von autoBert 1. Veröffentlichung http://www.autoit.de/index.php?page…3192#post223192
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <GuiImageList.au3>

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

    Opt("MustDeclareVars", 1)

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

    _Main()

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

    Func _Main()
    Local $sBMPNormal = @ScriptDIR & "\Icons\dsFirst_NORMAL.BMP"
    Local $sBMPHot = @ScriptDir & "\Icons\dsFirst_mouseover.bmp"
    Local $sBMPPress = @ScriptDir & "\Icons\dsFirst_mousedown.bmp"
    Local $sBMPImage = @WindowsDir & "\pchealth\helpctr\System\blurbs\watermark_300x.bmp"
    Local $btn1, $btn2, $btn3, $btn4, $msg
    Local $hImagebtn1, $hImagebtn2, $hImagebtn3 ,$hImagebtn4

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

    ;Caveat: Minimum Operating Systems: Windows XP.

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

    ;Image list with multiple images will only show the images
    ;other than the 1st image when Themes are used.

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

    GUICreate("Button Imagelists - Minimum OS: Windows XP",400,300)

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

    GUICtrlCreatePic(@WindowsDir & "\Web\Wallpaper\Windows XP.jpg", 0, 0, 400, 300)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    ;multi state image Bitmap
    $btn1 = GUICtrlCreateButton("This Way", 30, 30, 90, 32)
    GUICtrlSetTip(-1, "Multi state bitmap imagelist")
    $hImagebtn1 = _GUIImageList_Create(24, 24, 3, 3)
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);1 - Normal
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPHot) ;2 - Hot
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPPress) ;3 - Pressed
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPPress);4 - Disabled
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);5 - Defaulted
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);6 - Stylus Hot (tablet computers only)
    _GUICtrlButton_SetImageList($btn1, $hImagebtn1)

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

    ;single state image Bitmap
    $btn2 = GUICtrlCreateButton("This Way", 30, 70, 90, 32)
    GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetTip(-1, "Single bitmap imagelist")
    $hImagebtn2 = _GUIImageList_Create(24, 24, 5, 3)
    _GUIImageList_AddBitmap($hImagebtn2, $sBMPNormal);1 - Normal
    _GUICtrlButton_SetImageList($btn2, $hImagebtn2)

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

    ;single state image Icon
    $btn3 = GUICtrlCreateButton("Unlock", 30, 110, 90, 40)
    GUICtrlSetTip(-1, "Single icon imagelist")
    $hImagebtn3 = _GUIImageList_Create(32, 32, 5, 3)
    _GUIImageList_AddIcon($hImagebtn3, "msrating.dll", 10, True)
    _GUICtrlButton_SetImageList($btn3, $hImagebtn3)

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

    ;single state image Bitmap with overlayed text
    $btn4 = GUICtrlCreateButton("Help", 30, 160, 90, 90)
    GUICtrlSetTip(-1, "Single bitmap imagelist with overlayed text")
    GUICtrlSetFont(-1, 14, 800, -1, "Comic Sans MS")
    $hImagebtn4 = _GUIImageList_Create(80, 80, 5, 3)
    _GUIImageList_AddBitmap($hImagebtn4, $sBMPImage)
    _GUICtrlButton_SetImageList($btn4, $hImagebtn4, 4)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    Case $btn2
    GUICtrlSetState($btn1, $GUI_DISABLE)
    Case $btn3
    GUICtrlSetState($btn1, $GUI_ENABLE)
    Case $btn4
    EndSwitch
    WEnd
    EndFunc ;==>_Main

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

    dazu benötigst du noch Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Nachtrag: hier noch eine Abwandlung davon bei der das Hintergrundbild durchscheint:

    Spoiler anzeigen
    [autoit]


    ;aus Hilfe Beispielen zusammenkopiert von autoBert 1. Veröffentlichung http://www.autoit.de/index.php?page…3192#post223192; *** Start added by AutoIt3Wrapper ***
    #include <WindowsConstants.au3>
    ; *** End added by AutoIt3Wrapper ***
    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Add_Constants=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ;#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <GuiImageList.au3>

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

    Opt("MustDeclareVars", 1)

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

    Global $iTrans = 150 ;je niedriger um so mehr scheint dass HintergrundBild durch

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

    _Main()

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

    Func _Main()
    Local $sBMPNormal = @ScriptDir & "\Icons\dsFirst_NORMAL.BMP"
    Local $sBMPHot = @ScriptDir & "\Icons\dsFirst_mouseover.bmp"
    Local $sBMPPress = @ScriptDir & "\Icons\dsFirst_mousedown.bmp"
    Local $sBMPImage = @WindowsDir & "\pchealth\helpctr\System\blurbs\watermark_300x.bmp"
    Local $btn1, $btn2, $btn3, $btn4, $msg
    Local $hImagebtn1, $hImagebtn2, $hImagebtn3, $hImagebtn4

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

    ;Caveat: Minimum Operating Systems: Windows XP.

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

    ;Image list with multiple images will only show the images
    ;other than the 1st image when Themes are used.

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

    Local $hGUI = GUICreate("Button Imagelists - Minimum OS: Windows XP", 400, 300)

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

    GUICtrlCreatePic(@WindowsDir & "\Web\Wallpaper\Windows XP.jpg", 0, 0, 400, 300)
    GUICtrlSetState(-1, $GUI_DISABLE)
    Local $hChild1 = GUICreate("Child", 90, 32, 30, 30, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_ACCEPTFILES), $hGUI)
    ;multi state image Bitmap
    $btn1 = GUICtrlCreateButton("This Way", 0, 0, 90, 32)
    GUICtrlSetTip(-1, "Multi state bitmap imagelist")
    $hImagebtn1 = _GUIImageList_Create(24, 24, 3, 3)
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);1 - Normal
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPHot) ;2 - Hot
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPPress) ;3 - Pressed
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPPress);4 - Disabled
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);5 - Defaulted
    _GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);6 - Stylus Hot (tablet computers only)
    _GUICtrlButton_SetImageList($btn1, $hImagebtn1)
    ;#cs
    Local $hChild2 = GUICreate("Child", 90, 32, 30, 70, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_ACCEPTFILES), $hGUI)
    ;single state image Bitmap
    $btn2 = GUICtrlCreateButton("This Way", 0, 0, 90, 32)
    GUICtrlSetTip(-1, "Single bitmap imagelist")
    $hImagebtn2 = _GUIImageList_Create(24, 24, 5, 3)
    _GUIImageList_AddBitmap($hImagebtn2, $sBMPNormal);1 - Normal
    _GUICtrlButton_SetImageList($btn2, $hImagebtn2)
    ;#ce
    Local $hChild3 = GUICreate("Child", 90, 40, 30, 110, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_ACCEPTFILES), $hGUI)
    ;single state image Icon
    $btn3 = GUICtrlCreateButton("Unlock", 0, 0, 90, 40)
    GUICtrlSetTip(-1, "Single icon imagelist")
    $hImagebtn3 = _GUIImageList_Create(32, 32, 5, 3)
    _GUIImageList_AddIcon($hImagebtn3, "msrating.dll", 10, True)
    _GUICtrlButton_SetImageList($btn3, $hImagebtn3)

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

    Local $hChild4 = GUICreate("Child", 90, 90, 30, 160, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_ACCEPTFILES), $hGUI)
    ;single state image Bitmap with overlayed text
    $btn4 = GUICtrlCreateButton("Help", 0, 0, 90, 90)
    GUICtrlSetTip(-1, "Single bitmap imagelist with overlayed text")
    GUICtrlSetFont(-1, 14, 800, -1, "Comic Sans MS")
    $hImagebtn4 = _GUIImageList_Create(80, 80, 5, 3)
    _GUIImageList_AddBitmap($hImagebtn4, $sBMPImage)
    _GUICtrlButton_SetImageList($btn4, $hImagebtn4, 4)
    WinSetTrans($hChild1, "", $iTrans)
    WinSetTrans($hChild2, "", $iTrans)
    WinSetTrans($hChild3, "", $iTrans)
    WinSetTrans($hChild4, "", $iTrans)
    GUISetState(@SW_SHOW, $hGUI)
    GUISetState(@SW_SHOW, $hChild1)
    GUISetState(@SW_SHOW, $hChild2)
    GUISetState(@SW_SHOW, $hChild3)
    GUISetState(@SW_SHOW, $hChild4)
    WinActivate($hGUI)

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

    While 1
    if not WinActive($hGUI) then WinActivate($hGUI)
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    Case $btn2
    GUICtrlSetState($btn1, $GUI_DISABLE)
    Case $btn3
    GUICtrlSetState($btn1, $GUI_ENABLE)
    Case $btn4
    EndSwitch
    WEnd
    EndFunc ;==>_Main

    [/autoit]

    leider flackert diese Version bei jedem Klick auf einen Button,

    mfg autoBert

  • Danke. Ich habe nun anstatt der Buttons einige
    Checkboxen in eine Art Gitternetz eingebaut, sodass es dann besser aussieht und ich am Ende nur noch ein Button habe.