|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 15.03.2004, 20:51 Titel: Win32: Geformte Fenster |
|
|
Hallo mal wieder,
Ich weiss ganz genau, dass es eine Funktion gibt, mit der man Fenster einen "runden" Rand geben kann, definiert über Grafikpfade oder so ähnlich. Nur habe ich den Namen der Funktion leider vergessen und eine Suche in der MSDN hat erstmal nichts gebracht.
Ich möchte ein Programm eine dem Windows Mediaplayer ähnliche Oberfläche geben - mit dem Unterschied, dass diese Oberfläche animiert sein soll, also die Form während der Programmlaufzeit veränderbar ist.
Ein bisheriger Ansatz mittels Colorkeys (allerdings in C#) hatte beim "Verkleinern" den unangenehmen Nebeneffekt, dass verkleinerte Bereiche einfach im alten Zustand blieben. Dass sieht natürlich sehr unschön aus.
Ich hatte mal irgendwo ein Beispielprogramm gesehen, dass in die Fenstermitte einfach einen Kreis hineingeschnitten hatte, und das ganze über einen Grafikpfad definiert - nur finde ich dieses Beispiel nicht mehr.
Kann mir jemand helfen? _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.03.2004, 20:56 Titel: |
|
|
Ich glaub die Befehle waren CreatePolygonRgn,... und SetWindowRgn _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
me Junior JLI'ler
Anmeldedatum: 10.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 15.03.2004, 21:02 Titel: |
|
|
Also mit der MFC scheint das machbar zu sein.
Zieh dir mal in der MSDN folgende Befehle rein:
CRgn::CreateEllipticRgn(...)
und
SetWindowRgn(...)
Damit könnte es klappen.
<edit>
War Fallen Angel wohl schneller
</edit> _________________ If something is stupid and it works, it ain't stupid! |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 15.03.2004, 21:10 Titel: |
|
|
War das, was ich gesucht hatte, aber wie so oft, wenn man den Fuinktionsnamen nicht genau kennt, ist es schwer etwas in der MSDN zu finden
Danke _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 16.03.2004, 09:25 Titel: |
|
|
Also wenn du ne .NET Application machst, da gibt es eine funktion, die praktisch nen Color key für das fenster setzt. Damit geht das auch prima |
|
Nach oben |
|
|
KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 16.03.2004, 11:47 Titel: |
|
|
xardias hat Folgendes geschrieben: | Also wenn du ne .NET Application machst, da gibt es eine funktion, die praktisch nen Color key für das fenster setzt. Damit geht das auch prima |
Das konnte ich sogar früher schon mit Visual Basic machen.
Ich weiß jetzt grad nicht wie... - Es geht auf jeden Fall irgendwie. |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 16.03.2004, 12:48 Titel: |
|
|
Jo, sowas hab ich mit VB auch schon mal gemacht...
mit CreateEllipticRgn(), CreateRectRgn(), CombineRgn() und SetWindowRgn() ein Fenster in der Form eines Gesichts gemacht ^^
schwachsinnig aber lustig |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 16.03.2004, 21:32 Titel: |
|
|
Ich habe es inzwischen geschafft, meine Wünschein Realität umzusetzen.
Zitat: |
Also wenn du ne .NET Application machst, da gibt es eine funktion, die praktisch nen Color key für das fenster setzt. Damit geht das auch prima | Der Colorkey ist zwar eine Möglichkeit so etwas unter dotNet-Anwendungen zu erreichen, allerdings funktioniert das mit dem Colorkey nicht 100%ig. z.B. ist es bei 32-Bit-Farbtiefe fast Unmöglich eine vernünftige Lösung zu erreichen, aber mit der Eigenschaft Region der Control-klasse hatte ich genau das gefunden, was ich suchte. _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|