Seite 1 von 2
Textgadget durchsichtig
Verfasst: 27.10.2006 19:03
von RSBasic
Hi ihr, ich habe mal eine Frage zu Textgadget.
Ich möchte mein Textgadget durchsichtig machen, aber dazu brauche ich entweder eine WinAPI oder einen Beispielcode. Habt ihr für mich eine Lösung?
Ich wünsche euch ein schönes Wochenende

Verfasst: 27.10.2006 21:35
von RSBasic
Hat jemand hier keine Lösung für mich?
Verfasst: 27.10.2006 22:40
von Kekskiller
Edit: wooops... hab "unsichtbar" gelesen...
Verfasst: 27.10.2006 23:25
von #NULL
bis hier ein API-jemand auftaucht:
du kannst ein HyperLinkGadget verwenden.
<edit: hab mich geirrt, das bringt dir auch keine transparenz, sorry>
Verfasst: 27.10.2006 23:48
von Kaeru Gaman
hier gabs doch in letzter zeit des öfteren den API-call für transparenz,
wurde für taskleiste angewendet und glaubich auch fürn fenster.
ein Gadget ist doch auch ein Fenster-Objekt.
könnte doch auch damit funktionieren....?
Verfasst: 27.10.2006 23:59
von #NULL
ja, das hab ich mal probiert, is aber nix geworden, weil ich die entsprechenden API-funktionen nicht blicke
Code: Alles auswählen
CreateImage(0, 100,100)
StartDrawing( ImageOutput(0) )
Circle(50,50,10,$00ff00)
StopDrawing()
hWin=OpenWindow(0, 50,150,400,400, "")
CreateGadgetList(hWin)
ImageGadget(0, 0,0, 200,100, ImageID(0) , #PB_Image_Border)
;HyperLinkGadget(1, 50,20, 200,20, "hach wie lustig, ich bin (noch) nicht durchsichtig", $0)
TextGadget(1, 50,20, 300,20, "hach wie lustig, ich bin (noch) nicht durchsichtig", $0)
SetGadgetColor(1, #PB_Gadget_FrontColor, $009900)
;SetGadgetColor(1, #PB_Gadget_BackColor, 256)
hwnd=GadgetID(1)
lucid=100
SetWindowLong_(hwnd,#GWL_EXSTYLE,GetWindowLong_(hwnd,#GWL_EXSTYLE)|#WS_EX_LAYERED)
SetLayeredWindowAttributes_(hwnd,0,lucid,2)
Repeat
StartDrawing( WindowOutput(0) )
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(50,60, "aber ich, nur will mich keiner haben", $ffffff)
StopDrawing()
event=WindowEvent()
Select event
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit
@rsbasic
soll alles transparent sein, oder nur der schrift-hintergrund?
Verfasst: 28.10.2006 01:38
von Falko
Hab zwar kein Textgadget genommen um es transparent darzustellen,
aber vielleicht kannst du mit diesem Beispiel was anfangen.
Ein Windows was transparent wird und ebenso ein Text, der auf das
Windows gezeichnet wird.
http://www.purebasic.fr/german/viewtopi ... 627#120627
Gruß ...Falko
Verfasst: 28.10.2006 10:14
von RSBasic
@#NULL
Zu deiner Frage: Nur den Textgadget
Zu dein Beispielcode: THX, mal schauen
@Falko
Zu dir auch: THX
Aber irgendwie muss eine Api geben oder?
Windows Texte sind auch transparent.
Verfasst: 28.10.2006 11:21
von Andreas
Code: Alles auswählen
Procedure WCB(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_CTLCOLORSTATIC
Select lparam
Case GadgetID(1)
SetBkMode_(wparam,#TRANSPARENT)
ProcedureReturn GetStockObject_(#HOLLOW_BRUSH)
EndSelect
EndSelect
ProcedureReturn Result
EndProcedure
CreateImage(0, 100,100)
StartDrawing( ImageOutput(0) )
Circle(0,0,110,$00ff00)
StopDrawing()
hWin=OpenWindow(0, 50,150,400,400, "")
CreateGadgetList(hWin)
ImageGadget(0, 0,0, 200,100, ImageID(0) , #PB_Image_Border)
TextGadget(1, 10,20, 300,20, "hach wie lustig, ich bin ja doch durchsichtig", $0)
TextGadget(2, 10,40, 300,20, "hach wie lustig, ich bin nicht durchsichtig", $0)
SetGadgetColor(1, #PB_Gadget_FrontColor, $009900)
SetGadgetColor(2, #PB_Gadget_FrontColor, $009900)
SetWindowCallback(@WCB(),0)
Repeat
event=WindowEvent()
Select event
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit
Verfasst: 28.10.2006 11:29
von RSBasic
@Andreas
Vielen Dank
