Hallo,
wie bekomme ich ein Input transparent um ein Bild dahinter zu legen oder wie kann ich den Rand färben damit ich kein Bild dahinter legen muss? ![]()
mfg Freaky
Input transparent oder Rand färben
-
- [ offen ]
-
Freaky -
8. Juni 2011 um 19:09 -
Geschlossen -
Erledigt
-
-
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.
-
Ja ....
Bitte zuerst ausprobieren dann antworten
-
Ich weiß nicht ob es mittlerweile schon bessere Lösungsansätze gibt.
Das hab ich hier gefunden:
[ offen ] Input transparent machen -
Hmm, ja da habe ich schonmal gefragt aber halt keine Lösung gefunden.
Dein Beispiel dort funktioniert bei mir z.B. garnicht
-
Hi, probier mal folgendes:
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$BkColor1 = 0x161616
[/autoit] [autoit][/autoit] [autoit]
$BkColor2 = $BkColor1 + 1
$CtrlColor = 0xFFFFFF - $BkColor1$GUI = GUICreate("Test GUI", 400, 200)
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor($BkColor1, $GUI)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
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor($BkColor2, $GUI2)GUICtrlCreateInput("Transparent bis auf den rand", 10, 10, 200, 100)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetBkColor(-1, $BkColor2)
GUICtrlSetColor(-1, $CtrlColor)_WinAPI_SetLayeredWindowAttributes($GUI2, $BkColor2);GUI2 transparent machen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW, $GUI)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW, $GUI2)While GUIGetMsg($GUI) <> -3
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(50)
WEnd_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]
[/autoit][autoit][/autoit][autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>Opt('GUIOnEventMode', 1)
[/autoit][autoit][/autoit][autoit]Global $hGui = GUICreate("Quasi-Transparentes Input-Control", 300, 300)
[/autoit][autoit][/autoit][autoit]
GUISetOnEvent(-3, '_Ende')
GUIRegisterMsg($WM_COMMAND, 'MY_WM_NOTIFY')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)
[/autoit][autoit][/autoit][autoit]
GUICtrlSetBkColor(-1, -2)Global $nInput = GUICtrlCreateInput('', 23, 50, 257, 1, 0x200)
[/autoit][autoit][/autoit][autoit]
Global $hInput = GUICtrlGetHandle(-1)Global $nLabel = GUICtrlCreateLabel("", 20, 50, 260, 16, 0x1000)
[/autoit][autoit][/autoit][autoit]
GUICtrlSetBkColor(-1, -2)
GUICtrlSetOnEvent(-1, "_EditActivate")GUICtrlCreateLabel("Normales Input-Control", 20, 90, 260, 20, 0x201)
[/autoit][autoit][/autoit][autoit]
GUICtrlSetBkColor(-1, -2)GUICtrlCreateInput('', 25, 120, 255, 20, 0x200)
[/autoit][autoit][/autoit][autoit]GUISetState()
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
Sleep(10000)
WEndFunc _Ende()
[/autoit][autoit][/autoit][autoit]
Exit
EndFuncFunc _EditActivate()
[/autoit][autoit][/autoit][autoit]
ControlFocus($hGui, "", $hInput)
EndFuncFunc MY_WM_NOTIFY($hWnd, $msg, $wParam, $lParam)
[/autoit][autoit][/autoit][autoit][/autoit]
Local $nID = BitAND($wParam, 0x0000FFFF)
If $nID = $nInput Then GUICtrlSetData($nLabel, ' ' & GUICtrlRead($nInput))
EndFunc -
Danke, aber es flakert immer und flakern ist uncool

-
- Offizieller Beitrag
Hab nicht alles gelesen, aber ...
Spoiler anzeigen
[autoit]#include <windowsconstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <winapi.au3>$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)
[/autoit] [autoit][/autoit] [autoit]
$n = GUICtrlCreatePic(@SystemDir & "\oobe\images\mslogo.jpg", 50, 50, 200, 50)GUISetState()
[/autoit] [autoit][/autoit] [autoit]$hB = GUICreate("inputwindow", 200, 25, 240, 270, $WS_POPUP, $WS_EX_LAYERED)
[/autoit] [autoit][/autoit] [autoit]
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)
WEndFunc Moved($hWnd, $iMsg, $wParam, $lParam)
[/autoit]
Local $gp
If $hWnd = $Gui Then
$gp = WinGetPos($Gui)
WinMove($hB, "", $gp[0] + 40, $gp[1] + 70)
EndIf
EndFunc ;==>Moved