Desktop zeichnen - transparent

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Sora

Betreff: Desktop zeichnen - transparent

BeitragDi, Dez 02, 2008 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Wenn ich z.B ein transparentes Bild auf den Desktop zeichnen möchte:

Code: [AUSKLAPPEN]
Local canvas:TGadget=CreateCanvas(100,0,100,100,Desktop())
SetMaskColor( 255,0,255 )
Local bild:TImage= LoadImage("bild.png",MASKEDIMAGE)
...
SetGraphics CanvasGraphics(canvas)
DrawImage bild,0,0
...


habe ich immer noch den störenden Canvas Hintergrund.

Gibt es eine Möglichkeit den Canvas Hintergrund transparent zu bekommen oder muss man für so ein Vorhaben völlig anders vorgehen?
 

DjDETE

BeitragDi, Dez 02, 2008 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Geh mal in deinen Blitzplusordner, dort findest du irgendwo ein Beispiel bei den Samples, Slush oder so. Dort wird sowas gemacht.
MfG DeTe

Edit: Embarassed ups sry
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden.
  • Zuletzt bearbeitet von DjDETE am Mi, Dez 03, 2008 14:56, insgesamt einmal bearbeitet
 

Sora

BeitragDi, Dez 02, 2008 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
DjDETE hat Folgendes geschrieben:
Geh mal in deinen Blitzplusordner, dort findest du irgendwo ein Beispiel bei den Samples, Slush oder so. Dort wird sowas gemacht.
MfG DeTe


Da ich hier im BlitzMax Forum schreibe, verwende ich auch BlitzMax Wink Habe also keine Blitz+ Samples in denen ich nachschauen könnte. ^^
 

ChristianK

BeitragDi, Dez 02, 2008 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Man kann nicht direkt auf den Desktop zeichnen. Um Transparenzeffekte zu bekommen, könntest du aber Layered Windows verwenden. Ist allerdings nicht ganz unkompliziert. Wink
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Sora

BeitragDi, Dez 02, 2008 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ChristianK hat Folgendes geschrieben:
Man kann nicht direkt auf den Desktop zeichnen. Um Transparenzeffekte zu bekommen, könntest du aber Layered Windows verwenden. Ist allerdings nicht ganz unkompliziert. Wink


Hm schade, aber so etwas komplexes per WinAPi einzubinden ist noch eine Nummer zu groß^^, oder kennst du zufällig irgendeinen Beispielcode? Smile

Sora.
 

Sora

BeitragDi, Dez 02, 2008 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hätte es ja selbst nicht geglaubt, aber ich habe es nun hinbekommen, danke Christian.

Ein Problem besteht jedoch noch, an der Stelle, an der es auf dem Desktop gezeichnet wird, kann man nicht mehr hinklicken (Icons/Rechtsklick etc.), jemand eine Idee wie man das umgehen könnte?
 

ChristianK

BeitragMi, Dez 03, 2008 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann musst du den Wert WS_EX_TRANSPARENT für das Fenster einsetzen. Geht in etwa so:

Code: [AUSKLAPPEN]
Local prev:Int = GetWindowLong(fenster, GWL_EXSTYLE)
SetWindowLong(fenster, GWL_EXSTYLE, prev | WS_EX_TRANSPARENT)
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Sora

BeitragMi, Dez 03, 2008 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank, Christan! Funktioniert nun perfekt! Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group