Seite 1 von 2
Rahmenloses fenster mit Tranzparenz
Verfasst: 24.07.2006 20:24
von Tsuki-Namida
Hallo,
ich möchte ein Fenster machen war rund ist. Aber mit einem einfachen rahmenlosen fenster ist es da nicht getahn, da die fenster ja dennoch im Qudrat bzw. Rechteck dargestellt werden. Das ist allerdings nicht mein wunsch...
Kurtz gesagt:
Wie kann ich ein fenster machen das mit einer Farbe die ich als Tranzparent gefiniere nicht zu sehen ist?
[Edit]
UPS sorry könnte ein Mod das Thema bitte verschieben? Ich habe es versehendlich falsch gepostet...
[/Edit]
Verfasst: 24.07.2006 20:37
von Zaphod
schau mal im msdn unter "Regions".
Verfasst: 24.07.2006 21:01
von Tsuki-Namida
@Zaphod
ich habe leider nichts gefunden

oder ich bin zu blööd zum suchen....
Verfasst: 24.07.2006 22:44
von Kiffi
PBOSL: SkinWin
Wenn Du ein neues Projekt anfängst, sprich ja auch eigentlich nichts dagegen
PB4 zu verwenden.
Und bitte tu uns einen Gefallen und tausch Deine Sig durch einen einfachen
Text aus.
Grüße ... Kiffi
Verfasst: 25.07.2006 10:06
von Zaphod
WOW, MSDN hat sich ja krass verschlechtert. Warum kommt man da eigentlich nichtmehr an's englische MSDN?
Also die SkinWin library zu benutzen wär der leichteste weg. Wenn du wissen willst, wie das mit den Fensterformen in windows funktionert und wie Skinwin das macht hab ich hier dazu noch was gefunden:
http://www.flipcode.com/articles/articl ... kins.shtml
Beispielcode ist in C, besteht aber fast nur aus API Aufrufen und sollte somit eigentlich kein Problem sein.
Verfasst: 25.07.2006 12:43
von PBZecke
Es gibt noch eine Möglichkeit, die allerdings erst ab Win 2000 funktioniert. Mit
SetLayeredWindowAttributes_() kann man alle Teile eines Fensters, die einer
bestimmten Farbe entsprechen, transparent machen. Auf diese Weise kann
man komplexe Formen ohne die Verwendung von Regions mit nur einem
Befehl erzeugen.
Verfasst: 25.07.2006 13:21
von Zaphod
Steht in dem verlinkten Tutorial unten in den Kommentaren. Es macht auch sinn, dass so zu machen und auf Kompatibilität mit früheren Windowsversionen zu verzichten, weil diese möglichkeit viel schneller ist. Bei sehr komplexen formen die aus sehr vielen Regions bestehn würde wird so ein fenster sonst zappelig.
Verfasst: 25.07.2006 17:09
von Tsuki-Namida
okay ich habe mich für eine möglichkeit entschieden...
Code: Alles auswählen
OpenWindow(1, 12, 20, 134, 124, #PB_Window_BorderLess, "")
SkinWin(WindowID(), LoadImage(0, "G:\test.bmp"), 0, 0)
hier ist das Bild
es hat die Sbmessung von 134 mal 124 Pixeln
Und die
tranzparente farbe ist: #F0B0F0
,it dieser Befehlskombination bekomme ich nur ein Fenster (ohne Rahmen) das die Standart (Eingestellt) Farbe von windows hat... also ohne ein bild darauf...
was ist daran falsch?
Verfasst: 26.07.2006 15:08
von Tsuki-Namida
Okay mit dem inhalt dieser Seite
http://www.flipcode.com/articles/articl ... kins.shtml
kann ich nichts anfangen
der grund ist. erstens meine englisch kenntnisse sind nicht besonderst gut

und zweitens... ist das doch nicht für PureBasic???
Verfasst: 26.07.2006 15:39
von Kiffi
> was ist daran falsch?
keine Ahnung.
Wenn Du Dir auch noch die PBOSL-Examples herunterlädst, so findest Du im
SkinWin-Ordner einige Tools, mit denen Du aus Bitmaps eine SkinWin-Datei
erzeugen kannst.
Aber die Bitmap, so wie Du sie gepostet hast, lässt sich mit den Tools nicht
laden. Ich musste die BMP mit dem IrfanView öffnen und noch einmal als
Bitmap speichern. Dann ging's.
Gibt's eigentlich einen Grund, warum Du noch immer 3.94 benutzt?
Grüße ... Kiffi