Eckigen Rand um Button entfernen, der besonders bei Hintergrundbildern auffällt

  • Hat jemand ne Lösung, diesen Rand hinter dem eigentlichen abgerundeten Button zu entfernen?

    Edit: Es ist zwar keine optimale Lösung, aber man kann den Hintergrund der GUI auf die Farbe setzen, wie auch die Pixel des Hintergrunds auf denen sich die Buttons drauf befinden gefärbt ist. :pinch:

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

    2 Mal editiert, zuletzt von retrokid (7. Oktober 2011 um 19:19)

  • Also bei den Bildern geht das mit:

    [autoit]

    GuiCtrlSetState($Bild, @SW_DISABLE)

    [/autoit]

    dann wird das Bild Disabled und der Button kommt GANZ dahinter hervor ( mir runden ecken ) und du kannst ihn auch anklicken.
    Wie du die normalen Ecken rund bekommst, weiß ich nicht, aber du kannst eventuell die Hintergrundfarbe des Buttons setzen, also:

    [autoit]

    GUICtrlSetBkColor($Button, 0x00FF00) ;oder welche farbe auch immer

    [/autoit]

    .

    mfg
    Hauke

  • Danke hellboy, die Funktion hab ich wohl wieder gelöscht gehabt...
    Naja, ich hab mal schnell eine Version für Buttons geschrieben und das ganze ein weig aufgeräumt.
    Beachten muss man bei dem ganzen übrigens, dass der Button nicht mehr auf dem normalen Weg per GUICtrlSetData o.Ä. angesprochen werden kann, ohne vorher per GUISwitch auf die entsprechende Child GUI zu wechseln. Alles andere funktioniert wie gehabt.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>

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

    $hWnd_Main = GUICreate("Button Test", 200, 100)
    $cButton = _GUICtrlCreateTransparentButton($hWnd_Main, "Test", 50, 10, 60, 25)
    GUISetBkColor(0x0000FF, $hWnd_Main)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cButton
    MsgBox(64, "Event", "Button wurde gedrückt.")
    EndSwitch
    WEnd

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

    Func _GUICtrlCreateTransparentButton($hWnd, $sText, $iX, $iY, $iWidth, $iHeight, $iStyle = 0, $iExStyle = 0)
    ;Author: name22 (http://www.autoit.de)

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

    $hWnd_Button = GUICreate("", $iWidth, $iHeight, $iX, $iY, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_MDICHILD, $WS_EX_LAYERED), $hWnd)
    $cButtonID = GUICtrlCreateButton($sText, 0, 0, $iWidth, $iHeight)
    GUISetBkColor(0xFEDBCA, $hWnd_Button)
    _WinAPI_SetLayeredWindowAttributes($hWnd_Button, 0xFEDBCA)
    GUISetState()

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

    GUISwitch($hWnd)
    Return $cButtonID
    EndFunc

    [/autoit]
  • Vielen Dank, Leute!
    Hab es mir schon gedacht mit @SW_Disable, hab es aber direkt beim Erstellen des Buttons eingebaut und dann wurde das Bild nicht angezeigt. (Wo ist der Kopf*gegen*Wand*hau-Smiley?!) :pinch:

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D