Button Farbe wieder auf Standard zurücksetzen

  • Irgendwie steh ich grad auf dem Schlauch und finde nichts passendes. Mein Programm soll unter betimmten Bedingungen einen Button rot einfärben und diesen bei Bedarf auch wieder auf die Standardfarbe zurückfärben. Scheinbar bietet die Funktion guictrlsetbkcolor aber nicht die Möglichkeit die Farbe wieder zu entfernen oder eben auf Standard zu setzen. Nun ist also die Frage wie der korrekte Farbcode lautet um wieder einen Standard grauen Button zu erhalten. Vielleicht gibts dafür ja auch eine Autoit Konstante?

    [autoit]


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

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

    $MainGUI = GUICreate("Main GUI", 502, 200, 50, 124)
    $Button1 = GUICtrlCreateButton("Button1", 336, 32)
    GUISetState(@SW_SHOW)
    $test = 1

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    if $test = 1 Then
    GUICtrlSetBkColor($Button1,0xFFB2B2)
    $test = 2
    Else
    ;GUICtrlSetBkColor($Button1, **welche Farbe muss hier rein???** )
    $test = 1
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (17. November 2010 um 22:50)

  • Ich hab mal die Farbe ausgelesen, und setz die dann so, es ist jedoch leider nicht die Exakte Farbe... Der schatten wird auch nicht sichtbar.
    Wenn du es von anfang an in dieser Farbe anzeigen lässt, fällt das auch nicht auf:

    [autoit]

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

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

    $MainGUI = GUICreate("Main GUI", 502, 200, 50, 124)
    $Button1 = GUICtrlCreateButton("Button1", 336, 32)
    GUISetState(@SW_SHOW)
    $test = 1

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    If $test = 2 Then
    GUICtrlSetBkColor ($Button1,0xededed)
    EndIf
    if $test = 1 Then
    GUICtrlSetBkColor($Button1,0xFFB2B2)
    $test = 2

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

    Else
    ;GUICtrlSetBkColor($Button1, **welche Farbe muss hier rein???** )
    $test = 1
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    //edit:
    Das geht besser und fällt garnicht auf!:

    [autoit]

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

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

    $MainGUI = GUICreate("Main GUI", 502, 200, 50, 124)
    $Button1 = GUICtrlCreateButton("Button1", 336, 32)
    GUISetState(@SW_SHOW)
    $test = 1

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    If $test = 2 Then
    GUICtrlDelete ($Button1)
    $Button1 = GUICtrlCreateButton("Button1", 336, 32)
    EndIf
    if $test = 1 Then
    GUICtrlSetBkColor($Button1,0xFFB2B2)
    $test = 2

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

    Else
    ;GUICtrlSetBkColor($Button1, **welche Farbe muss hier rein???** )
    $test = 1
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Hab mirs auch grad nochmal angeschaut, das Problem ist, dass die Buttons standardmässig einen Farbverlauf haben, also kann man garkeinen Farbcode verwenden um den Standard wiederherzustellen. Ich vermute mal, dass mir nichts anderes über bleibt als den button neu zu erstellen?

    EDIT: Jupp deinem Edit entnehme ich, dass mans genau so bewerkstelligen kann.

  • Siehe mein Edit^^
    Und ich denke es geht wirklich nicht anders, wegen diesem, wie schon erwähnt, Farbverlauf mit Schatten. Das das Control gelöscht und wieder erstellt wird sieht man aber nicht! Das geht so schnell!

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

    • Offizieller Beitrag

    Das geht mit der Button-UDF:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <WindowsConstants.au3>
    Local $switch = False

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

    GUICreate('')
    $b1 = GUICtrlCreateButton("Button",10,10)
    GUICtrlSetBkColor($b1,0x059122)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $b1
    $switch = Not $switch
    If $switch Then
    _GUICtrlButton_SetStyle($b1, $GUI_SS_DEFAULT_GUI)
    Else
    GUICtrlSetBkColor($b1,0x059122)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • In diesem Fall geht das, was mit der Button-UDF geht, auch ohne:

    [autoit]

    #include <ButtonConstants.au3>
    ; ...
    GUICtrlSetStyle($b1, $GUI_SS_DEFAULT_BUTTON)

    [/autoit]