Textfeld / Button etc. Transparent machen

  • hmmm das wirds net sein .... im anhang mal ein screenshot von meiner momentan situation im gui ..... das muss doch irgendwie funktionieren ^^
    Und hier ein Auschnitt des quellcodes wie ich versucht habe den text der radiobuttons transparent zu machen.

    [autoit]

    $radio_1 = GUICtrlCreateRadio("Einloggen", 10, 170, 77, 18)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState($radio_1, $GUI_CHECKED)
    $radio_2 = GUICtrlCreateRadio("Ausloggen", 10, 190, 77, 18)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Button2 = GUICtrlCreateButton("Ausfuehren", 220, 270)

    [/autoit]
  • Spoiler anzeigen
    [autoit]

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

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

    Global $OPAQUE = 0
    Global $TRANSPARENT = 1

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

    ; Dies ist der erste Streich ...
    GUIRegisterMsg ($WM_CTLCOLORSTATIC, 'WM_CTLCOLORSTATIC')

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

    $hWndMain = GUICreate ("My CheckBox Button with Transparency", 300, 200, _
    -1, -1, _
    $WS_OVERLAPPEDWINDOW)

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

    GUISetBkColor (0x00ff00)

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

    $pic = GUICtrlCreatePic (@SystemDir & '\oobe\images\wpaback.jpg', 0, 0, 300, 200)
    GUICtrlSetState (-1, $GUI_DISABLE)

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

    $btnCheckBox = GUICtrlCreateCheckbox ('Checkbox', 100, 90, 100, 20)
    ; ... und der zweite folgt sogleich. ;)
    DllCall ('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle (-1), 'wstr', ' ', 'wstr', ' ')

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

    $btnPushButton = GUICtrlCreateButton ('PushButton', 110, 150, 80, 20)

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

    GUISetState ()

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

    While True

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

    Switch GUIGetMsg ()
    Case -3
    Exit
    EndSwitch

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

    WEnd

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

    ;========================================================================================
    ; WM_CTLCOLORSTATIC ($hDC, $hCtrl)
    ;========================================================================================
    Func WM_CTLCOLORSTATIC ($hWnd, $Msg, $wParam, $lParam)

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

    Local $hDC = $wParam

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

    SetBkMode ($hDC, $TRANSPARENT)
    Return _WinAPI_GetStockObject (5) ; 5 = NULL_BRUSH/HOLLOW_BRUSH

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

    EndFunc

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

    ;========================================================================================
    ; Func SetBkMode ()
    ;========================================================================================
    Func SetBkMode ($hDC, $flag = 0)

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

    If ($flag < 0 Or $flag > 1) Then Return SetError (1)

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

    DllCall ('gdi32.dll', 'int', 'SetBkMode', _
    'hwnd', $hDC, _ ; handle to Decive Context
    'int', $flag) ; $flag: 1 = TRANSPARENT, 0 = OPAQUE

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

    EndFunc

    [/autoit]


  • Warum geht das mit dem Edit nicht?

    Edit
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #Include <WinAPI.au3>

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

    ; Dies ist der erste Streich ...
    GUIRegisterMsg ($WM_CTLCOLORSTATIC, 'WM_CTLCOLORSTATIC')

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

    $hWndMain = GUICreate ("My CheckBox Button with Transparency", 300, 200, -1, -1,$WS_OVERLAPPEDWINDOW)
    $pic = GUICtrlCreatePic (@SystemDir & '\oobe\images\wpaback.jpg', 0, 0, 300, 200)
    GUICtrlSetState (-1, $GUI_DISABLE)

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

    $btnCheckBox = GUICtrlCreateEdit('Checkbox', 10, 10, 100, 20)

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

    DllCall ('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle (-1), 'wstr', ' ', 'wstr', ' ')

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

    GUISetState ()

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

    While 1

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

    Switch GUIGetMsg ()
    Case -3
    Exit
    EndSwitch

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

    WEnd

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

    Func WM_CTLCOLORSTATIC ($hWnd, $Msg, $wParam, $lParam)

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

    Local $hDC = $wParam

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

    SetBkMode ($hDC, $TRANSPARENT)
    Return _WinAPI_GetStockObject (5) ; 5 = NULL_BRUSH/HOLLOW_BRUSH

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

    EndFunc

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

    Func SetBkMode ($hDC, $flag = 0)

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

    If ($flag < 0 Or $flag > 1) Then Return SetError (1)

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

    DllCall ('gdi32.dll', 'int', 'SetBkMode', _
    'hwnd', $hDC, _ ; handle to Decive Context
    'int', $flag) ; $flag: 1 = TRANSPARENT, 0 = OPAQUE

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

    EndFunc

    [/autoit]

    mfg. Jam00

  • äh was ?(


    Über Nachrichten und Nachrichten-Warteschleifen

    Zitat

    Das Betriebssystem Windows arbeitet ereignisorientiert, das heißt, dass die Programme nicht nach Informationen bezüglich Systemänderungen oder Benutzerereignissen fragen, sondern sie bekommen diese Informationen bei Bedarf frei Haus geliefert. Etwas technischer Beschrieben, ruft Windows eine Funktion des Programms auf, wenn eines dieser Ereignisse eingetreten ist. Diese Funktion ist vom Programm definiert und bestimmt so den Ablauf des Programms. So eine Funktion (auch Window Procedur oder kurz WndProc genannt) ist jedoch nicht an ein Programm gebunden, sondern an ein Fenster. Es kommt daher häufig vor, dass ein Programm mehrere solcher Funktionen unterhält. Über die Parameter der WndProc Funktion bekommt man die Art (also, was passiert ist) der Nachricht übergeben. Denn, falls es noch nicht deutlich geworden ist, eine WndProc Funktion ist für alle Ereignisse eines Fensters zuständig. Die Palette reicht vom skalieren des Fensters über einen Mouseklick bis hin zum Empfangen von Daten.


    WinAPI Tutorial


    Gruß


  • hey ich hab das gleiche problem mit checkboxen wie geht das hier und kann man die schriftfarbe einer checkbox verändern?