Seite 1 von 1
Borderless Window mit runder Form darstellen
Verfasst: 19.04.2007 19:00
von 50-Pfennig
Also ich habe eine Frage bezüglich nem Borderless Window, also ich würde gerne ein image, welches nicht rechteckig, sondern Oval ist (mit transparentem Hintergrund) darstellen. Wie kann ich also nur das Ovale Stück des Images anzeigen lassen?
Verfasst: 19.04.2007 19:04
von Kaeru Gaman
mit bereichen, schau mal in fluids code hier in diesem thread
http://www.purebasic.fr/german/viewtopic.php?t=12695
du müßtest halt für jede einzelne zeile ein rectangle erzeugen.
ich find sowas übertrieben und nutzlos, aber mach ruhig.
Verfasst: 19.04.2007 19:16
von Fluid Byte
Kaeru Gaman hat geschrieben:du müßtest halt für jede einzelne zeile ein rectangle erzeugen.
Alter schützt for Torheit nicht!
Im Ernst, das isn Zweizeiler:
Code: Alles auswählen
hRgnResult = CreateEllipticRgn_(0,0,ImageWidth(),ImageHeight())
SetWindowRgn_(WindowID(0),hRgnResult,1)
Es geht aber auch mit BitBlt_() und einer schwarz/weiss Maske.
ich find sowas übertrieben und nutzlos, aber mach ruhig.
Richtig angewendet ist es durchaus sinvoll. Aber das ist ja mit allen Dingen so.
Verfasst: 19.04.2007 20:31
von Kaeru Gaman
> Alter schützt for Torheit nicht!
ok... war ein fehlschluss.
> CreateEllipticRgn_(
aber dann muss auch das image pixelgenau reinpassen...
nungut, wär das kleinere übel.
> Es geht aber auch mit BitBlt_() und einer schwarz/weiss Maske.
das poste doch mal bitte in C,T&T
so fragen kommen oft genug, also mach mal.
> Richtig angewendet ist es durchaus sinvoll. Aber das ist ja mit allen Dingen so.
nuja.. zwischen "sinnvoll" und "spaßig" bzw. "interessant" ist zwar noch ein unterschied, aber ok...

Verfasst: 20.04.2007 08:30
von Tafkadasom2k5
Hey, die IDeen sind auf jeden Fall schön, und ich habe gerade ein wenig damit herumexperimentiert.
Ich habe hier den Fall, dass ich einen Text habe, der auf ein DrawGadget (in einer anderen Sprache aber

) gemalt wird. Wenn das Fenster vergrößert/verkleinert wird, so Zentriert sich der Text, und wird auf die neue Größe gestreckt.
Das Problem ist jetzt- wenn ich mir alle Punkte herraussuche (in dem Fall RGB(255,255,255), also Weiß), und diese transparent mache, so kann ich nur noch "auf den Text" klicken- dahinter ist er nicht mehr angreifbar.
Doch in meinem Fall wäre es gut, wenn wenigstens die Textzwischenräume noch anklickbar wären...
Hättest du da vielleicht auch eine Idee?
Gr33tz
Tafkadasom2k5
Verfasst: 20.04.2007 13:51
von Thalius
Tip: Post mal nen Entwurf deines GUI. ( Screenshot )
dann ist evtl. leichter passende Tips zu geben.
Thalius
Verfasst: 20.04.2007 14:17
von Tafkadasom2k5
Wird ein WYSWYG-Editor. Ich habe die Flächen, die momenten
nicht durchsichtig sind, grau gefärbt. Diese sollen aber transparent sein, aber trotzdem noch auf Klicks regaieren- die Callback darf nicht durch das alpha-blending (oder wieauchimmer das intern damit verfährt) behindert werden.
Ich finde das bei vielen WYSIWYG-Editoren sowieso schjon nervig, wenn man mal innerhalb des "O"s klickt, und nichts reagiert
Gr33tz
Tafkadasom2k5
Verfasst: 20.04.2007 18:17
von Fluid Byte
Wenn das Fenster vergrößert/verkleinert wird, so Zentriert sich der Text, und wird auf die neue Größe gestreckt.
Passiert das in Echtzeit oder ist der Text ein Bild?
Verfasst: 20.04.2007 19:25
von PMV
Du meinst, du hast ein Fenster welches nur Text darstellt ... Die
Freiräume, also die Pixel die keinen Text enthalten, entfernst du mit hilfe
der Window-Region-API? Wo kein Fenster ist, kann auch keins reagieren.
Du kannst höchstens per API die globalen Tastendrücke abfragen und
eventuell drauf reagieren. Aber wenn etwas hinter deinem Fenster ist,
reagiert dieses dann ... das müsste man abfangen.
Edit: mir fällt da noch was ein ... weis aber nicht wie Ressorcefressend
das ist ... du könntest die Fläche unter deinem Fenster auf deinem
Fenster malen. So sieht es für den Anwender aus, als dein Fenster
durchsichtig wäre und du kannst dennoch drauf klicken. Wenn du das
aber zu großflächig machst würde es mich als Anwender stören ... da
man dann nicht mehr klar erkennen kann, wo dein Fenster ist und wo
nicht
MFG PMV