freie Formen bei Fenstern 'windowless'
Übersicht

![]() |
MidimasterBetreff: freie Formen bei Fenstern 'windowless' |
![]() Antworten mit Zitat ![]() |
---|---|---|
weil ich grad jemandem im engl. Forum geholfen habe, nun auch hier der Quellcode dazu...
Die Funktion erreicht, dass das GUI-Fenster die Umrisse eines PNG-Bildes annimmt, also nicht mehr rechteckig ist. In dieser Funktion wird eine 8bit-PNG-Bild als Vorlage verwendet. Das TestBild gibt es hier: https://www.blitzforum.de/upload/file.php?id=10593 Um es mit 32bitARGB-PNG-Bildern zu nutzen müßte wahrscheinlich die Zeile....BlitzMax: [AUSKLAPPEN] If (argb <> NOTHING) ....umgeschrieben werden.
BlitzMax: [AUSKLAPPEN] Strict |
||
- Zuletzt bearbeitet von Midimaster am Fr, Mai 13, 2011 19:32, insgesamt einmal bearbeitet
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow, echt toll danke ![]() Ich hab mich schon lange gefragt wie man sowas macht. mfg Grafe |
||
![]() |
das wurgel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Transparenz wäre noch eine nette Ergänzung dazu:
BlitzMax: [AUSKLAPPEN] Const GWL_EXSTYLE = -20 |
||
1 ist ungefähr 3 |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich find das klasse, was ich jetzt jedoch noch gerne machen würde, ist ein Bild mit Transparenzwerten nehmen. Da man ja die Region selbst nicht transparent am Rande machen kann würde ich den Bereich etwas größer machen wollen, dann den Desktop drauf malen und dann das Bild. Aber soweit ich weiß gibt es in BlitzMax keinen schnellen DesktopBuffer, oder?
Das wäre echt klasse wenn das möglich wäre. Hat jemand eine Idee? Manuel über GetDC und GetPixel ist das denke ich zu langsam. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
verwende statt...
BlitzMax: [AUSKLAPPEN] If (argb <> NOTHING)
...diese Zeile... BlitzMax: [AUSKLAPPEN] If argb & $ff000000 = 0 ...und du kannst 32bit.PNGs mit Alpha-Kanal verwenden. Deine Idee verstehe ich nicht ganz... Es ist mit dem bestehenden Code ohnes weiteres Möglich auch "Löcher" in das Fenster zu integrieren. Die Rectangle-Liste kennt allerdings keinen "Alpha-Wert" um z.b. 50% Durchsichtigkeit pro Pixel herzustellen. Der Code von Wurgel scheint auch nur so eine Art "Aero-Look" zu bilden, bei dem aber die Transparenz für das gesamte Fenster gleich stark wäre. Oder täusche ich mich da? |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja ich meine genau diese 50% Tranzparenz und jede andere Stufen. Aber das geht so leider nicht. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest ein rahmenloses Fenster subclassen und dann bei #wm_paint das fenster mit Transparenz zeichnen. | ||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das bringt mir aber auch nich was ich wollte, da ich ja unterschiedlcihe Tranzparentwerte möchte um eine suabere Kante zu haben. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir mal diese beiden seiten an, daraus müsste sich was basteln lassen:
http://msdn.microsoft.com/en-u...85%29.aspx http://msdn.microsoft.com/en-u...85%29.aspx Wie genau du Vorgehen musst, kann ich dir icht sagen, aber du beißt dich ba bestimmt irgendwie durch ![]() |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das wird leider auch nicht funktionieren, da es somit entweder ein Transparentes Fenster wird, oder ein nicht transparentes Fenster mit einem Bild drauf. Das Fenster selbst müsste unterschiedliche Transparenz-Werte annehmen können, aber das geht leider nicht. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group