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 :D

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

Code: Alles auswählen

HideGadget(#Gadget, Status)
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 :allright:

@Falko
Zu dir auch: THX :allright:

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 :allright: