Input transparent oder Rand färben

  • Mit GUISetBkColor(Farbcode) kannst du soweit ich weiß die Farbe ändern.

    Ich weiß nicht, ob dann der ganze Input farbig ist oder nur der Rand. Ich werde es eben mal testen.

    * Edit : Funktioniert nicht beim Input. Nur beim Button etc. funktioniert GUISetBkColor.

  • Hi, probier mal folgendes:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    $BkColor1 = 0x161616
    $BkColor2 = $BkColor1 + 1
    $CtrlColor = 0xFFFFFF - $BkColor1

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

    $GUI = GUICreate("Test GUI", 400, 200)
    GUISetBkColor($BkColor1, $GUI)

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

    GUISetBkImage($GUI, "test.bmp", 400, 200)

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

    $GUI2 = GUICreate("", 400, 200, 0, 0, 0x80000000, BitOR(0x00080000, 0x00000040), $GUI);$WS_POPUP, $WS_EX_LAYERED+$WS_EX_MDICHILD
    GUISetBkColor($BkColor2, $GUI2)

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

    GUICtrlCreateInput("Transparent bis auf den rand", 10, 10, 200, 100)
    GUICtrlSetBkColor(-1, $BkColor2)
    GUICtrlSetColor(-1, $CtrlColor)

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

    _WinAPI_SetLayeredWindowAttributes($GUI2, $BkColor2);GUI2 transparent machen

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

    GUISetState(@SW_SHOW, $GUI)
    GUISetState(@SW_SHOW, $GUI2)

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

    While GUIGetMsg($GUI) <> -3
    Sleep(50)
    WEnd

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

    _GDIPlus_Shutdown()

    [/autoit]


    und das Bild:
    [Blockierte Grafik: http://img7.imagebanana.com/img/cnvh95zs/test.png]

    Den Rand sieht man noch. Der Text muss auch noch angepasst werden.

  • Hätte da noch einen Versuch für einen Workaround

    [autoit]


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

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

    Opt('GUIOnEventMode', 1)

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

    Global $hGui = GUICreate("Quasi-Transparentes Input-Control", 300, 300)
    GUISetOnEvent(-3, '_Ende')
    GUIRegisterMsg($WM_COMMAND, 'MY_WM_NOTIFY')

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

    GUICtrlCreatePic(@DocumentsCommonDir&'\Eigene Bilder\Beispielbilder\Sonnenuntergang.jpg', 0, 0, 300, 300, 0)

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

    GUICtrlCreateLabel("Transparentes Input-Control", 20, 20, 260, 20, 0x201)
    GUICtrlSetBkColor(-1, -2)

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

    Global $nInput = GUICtrlCreateInput('', 23, 50, 257, 1, 0x200)
    Global $hInput = GUICtrlGetHandle(-1)

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

    Global $nLabel = GUICtrlCreateLabel("", 20, 50, 260, 16, 0x1000)
    GUICtrlSetBkColor(-1, -2)
    GUICtrlSetOnEvent(-1, "_EditActivate")

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

    GUICtrlCreateLabel("Normales Input-Control", 20, 90, 260, 20, 0x201)
    GUICtrlSetBkColor(-1, -2)

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

    GUICtrlCreateInput('', 25, 120, 255, 20, 0x200)

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

    GUISetState()

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

    While 1
    Sleep(10000)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _EditActivate()
    ControlFocus($hGui, "", $hInput)
    EndFunc

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

    Func MY_WM_NOTIFY($hWnd, $msg, $wParam, $lParam)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    If $nID = $nInput Then GUICtrlSetData($nLabel, ' ' & GUICtrlRead($nInput))
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]
    • Offizieller Beitrag

    Hab nicht alles gelesen, aber ...

    Spoiler anzeigen
    [autoit]

    #include <windowsconstants.au3>
    #include <winapi.au3>

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

    $Gui = GUICreate("My GUI picture", 350, 300, 200, 200, $WS_SIZEBOX + $WS_SYSMENU); will create a dialog box that when displayed is centered

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

    GUISetBkColor(0xE0FFFF)
    $n = GUICtrlCreatePic(@SystemDir & "\oobe\images\mslogo.jpg", 50, 50, 200, 50)

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

    GUISetState()

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

    $hB = GUICreate("inputwindow", 200, 25, 240, 270, $WS_POPUP, $WS_EX_LAYERED)
    GUICtrlCreateInput("", 0, 0, 200, 25)
    GUICtrlSetBkColor(-1, 0xabcdef)
    GUICtrlSetFont(-1, 10, 800)
    GUISetState()
    Sleep(300)
    _WinAPI_SetLayeredWindowAttributes($hB, 0xabcdef, 255)
    WinSetOnTop($hB, "", 1)
    GUIRegisterMsg($WM_MOVE, "moved")
    While GUIGetMsg() <> -3
    Sleep(40)
    WEnd

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

    Func Moved($hWnd, $iMsg, $wParam, $lParam)
    Local $gp
    If $hWnd = $Gui Then
    $gp = WinGetPos($Gui)
    WinMove($hB, "", $gp[0] + 40, $gp[1] + 70)
    EndIf
    EndFunc ;==>Moved

    [/autoit]