ListiconGadget transparent machen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

ListiconGadget transparent machen?

Beitrag von PureBasic4.0 »

Hi Leute

ich möchte den hintergrund eines ListIconGadgets transparent machen. Wie geht das? Die Boardsuche hat nichts ergeben...

Danke,

PureBasic4.0

//edit: Für den Button bräuchte ich es auch noch. Ich offe, dass ich euch hier nicht zu viele umstände mache ;-)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Listicongadget -> da bezweifel ich das es geht.
Beim Buttongadget könnte es schon eher funktionieren.

Wofür brauchst du das?? /:->
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

dreimal darfst du raten...

ich habe ein Hintergrundbild mit SkinWin eingefügt und möchte jetzt, dass das ListIconGadget und das ButtonGadget so transparent werden, dass man das Hintergrundbild sieht.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Code: Alles auswählen

;/ PB 4.x

If OpenWindow(0, xWin, yWin, 615, 433, "Blubb", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget) And CreateGadgetList(WindowID(0)) 
  
  SetWindowLong_(WindowID(0),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|524288) 
  SetLayeredWindowAttributes_(WindowID(0),RGB(255,0,255),0,1) 
  
  StickyWindow(0, 1)
  ListIconGadget(0, 157, 58, 294, 294, "Hallo",100,#PB_ListIcon_GridLines)
  SetGadgetColor(0,#PB_Gadget_BackColor,RGB(255,0,255))
  
  
  ;{- Main Loop 
  
  Repeat 
    Event = WaitWindowEvent() ; Zuverlässigkeit bei Mausbewegung!
    
  Until Event=16  
  
EndIf  
Hoffe, es gefällt dir. Netten Gruß, Folker :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Danke für den Code, aber das war schon zu Transparent ;-)

Das Window hat ein Hintergrundbild. Und dieses soll sichbar sein (d.h. auch das unter dem ListIconGadget). Nicht der Bildschirm, der hinter dem Window ist.

Ich hoffe, es ist jetzt klarer ;-)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Was von FluidByte damals als ich mal eine Frage hatt :?

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"untitled",#WS_OVERLAPPEDWINDOW | 1) 

CreateGadgetList(WindowID(0))
;/ Gadgets
ButtonGadget(0,100,100,100,20,"MausX")

;/

osi.OSVERSIONINFO 
osi\dwOSVersionInfoSize = SizeOf(OSVERSIONINFO) 
GetVersionEx_(osi) 

If osi\dwPlatformId = #VER_PLATFORM_WIN32_NT 
  SetWindowLong_(WindowID(0),#GWL_EXSTYLE,#WS_EX_LAYERED)    
  SetLayeredWindowAttributes_(WindowID(0),0,120,#LWA_ALPHA) 
EndIf 

While WaitWindowEvent() ! 16 
  
Wend
Und gleich wirst du sagen:

Aber doch nur das Gadget bitte durchsichtig machen, will doch das Hintergrundbild noch sehen ...

Mach ein zweites Fenster mit Borderless.

Das setzt du auf das andere Fenster drauf.

das geht für beide Varianten. Du musst ja nicht deinen Desktop durchscheinen lassen, sondern kannst ja diese Methode bei dem oberen deiner Fenster anwenden ...

Meine Antwort ist also schon irgendwie richtig :mrgreen:

:allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Code: Alles auswählen


If OpenWindow(0, 0, 0, 615, 433, "Blubb", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget) 
  
  CreateImage(0,600,400)
  StartDrawing(ImageOutput(0))
    Circle(100,100,40,RGB(255,0,0))
  
  StopDrawing()
  
  CreateGadgetList(WindowID(0))
  ImageGadget(1,0,0,600,400,ImageID(0))
  
  OpenWindow(1,WindowX(0)+5, WindowY(0)+50, 300, 300, "Blubb", #PB_Window_BorderLess,WindowID(0)) 
  CreateGadgetList(WindowID(1)) 
  SetWindowLong_(WindowID(1),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|524288) 
  SetLayeredWindowAttributes_(WindowID(1),RGB(255,0,255),0,1) 
  
  StickyWindow(0, 1)
  ListIconGadget(0, 0, 0, 300, 300, "Hallo",100,#PB_ListIcon_GridLines)
  SetGadgetColor(0,#PB_Gadget_BackColor,RGB(255,0,255))
  
  
  ;{- Main Loop 
  
  Repeat 
    Event = WaitWindowEvent() ; Zuverlässigkeit bei Mausbewegung!
    
    IF Event=#PB_Event_SizeWindow or Event=#PB_Event_MoveWindow
      
      ResizeWindow(1,WindowX(0)+5,WindowY(0)+50,#PB_Ignore,#PB_Ignore)
      
    EndIf
    
  Until Event=16  
  
EndIf  
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Ja ich denke auch das das die beste lösung ist. :allright:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

fehlgeschlagener Versuch, wäre aber schön gewesen ...

Code: Alles auswählen

If OpenWindow(0, 0, 0, 615, 433, "Blubb", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget) 
  
  CreateImage(0,600,400)
  StartDrawing(ImageOutput(0))
  Circle(100,100,40,RGB(255,0,0))
  
  StopDrawing()
  
  CreateGadgetList(WindowID(0))
  ImageGadget(0,0,0,600,400,ImageID(0))
  
  ContainerGadget(1,WindowX(0)+5, WindowY(0)+50, 300, 300,#PB_Container_BorderLess) 
  
  SetWindowLong_(GadgetID(1),#GWL_EXSTYLE,GetWindowLong_(WindowID(0),#GWL_EXSTYLE)|524288) 
  SetLayeredWindowAttributes_(GadgetID(1),RGB(255,0,255),0,1) 
  
  
  ListIconGadget(2, 0, 0, 300, 300, "Hallo",100,#PB_ListIcon_GridLines)
  
  CloseGadgetList()
  
  SetGadgetColor(2,#PB_Gadget_BackColor,RGB(255,0,255))
  
  
  StickyWindow(0, 1)
  
  ;{- Main Loop 
  
  Repeat 
    Event = WaitWindowEvent() ; Zuverlässigkeit bei Mausbewegung!
    
    IF Event=#PB_Event_SizeWindow or Event=#PB_Event_MoveWindow
      
      ;ResizeWindow(1,WindowX(0)+5,WindowY(0)+50,#PB_Ignore,#PB_Ignore)
      
    EndIf
    
  Until Event=16  
  
EndIf  
:roll:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

@Xaby: Jetzt ist das ListIconGadget aber nicht mehr transparent, sondern hat eine lilane Hintergrundfarbe. Wenn ich

SetGadgetColor(2,#PB_Gadget_BackColor,RGB(255,0,255))

aus dem Code verbanne, ist es weiß, aber nicht mehr transparent, wie vorher.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten