PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene Fensterform


[::sqrt::]
19.09.2002, 21:46
Wie kann man einem Fenster unter der Win-Api eine eigene Form (z.B. ein Dreieck) geben?


Schaf
19.09.2002, 22:02
in welcher sprache? hab ein bsp für delphi ... kann ich dir schicken, wenn du willst. sonst musst du das ding interpretieren und in deine sprache umschreiben ;) also wie gesagt, wenn du's willst, geb ich dir das teil ...

MrEasy
19.09.2002, 22:46
fände ich auch interessant, kannste das hier mal posten d3dsh33p ?

Zapata
19.09.2002, 23:30
Hier ist es ausführlich mit win32 api in c++ erklährt, sollte so aber kein problem sein es auch woanders anzuwenden:

http://www.flipcode.com/articles/article_win32skins.shtml

Felix Kaiser
20.09.2002, 13:58
Sollte über WM_PAINT des Fensters gehen, das Fenster darf keinen von Windows gezeichneten Rahmen haben, es darf nur einen reinen Clientbereich haben. Im C++ Builder bzw. auch bei Delphi kannste das Fenster dann über OnPaint zeichnen, hab z.B. abgerundete Fenster und so kram gebastelt.

Aber Vorsicht! Auf einigen Systemen entstehen wenn diese Fenster überlappt werden Zeichenfehler! Wenn ich auf meinem Laptop (Win2000) dann mit einem Fremdfenster über meine abgerundeten Fenster herumschieben tu, gibts lustige Fehlzeichnungen in diesen.

xOOn
20.09.2002, 14:18
ich glaube man braucht es nicht so kompliziert zu machen und ueber WM_PAINT zu gehen

Zapata's link sollte den weg erklaeren

noch folgendes:

Wenn ich auf meinem Laptop (Win2000) dann mit einem Fremdfenster über meine abgerundeten Fenster herumschieben tu, gibts lustige Fehlzeichnungen in diesen.

das verschieben musst du dir aber selbst bauen, weil des keinen fensterrahmen mehr haben kann (oder zumindest keinen der normal aussieht :D)

wenn wer ein verschiebensample braucht : ganz laut danach schreien

Felix Kaiser
20.09.2002, 14:47
Nein, verstehst nich. Darum gehts nich (auch wenn ich daran schon gedacht hatte :p ). Es geht darum, wenn ein anderes Fenster über meinem eigenstgemalten verschoben wird, dass das schlimme Zeichenfehler provoziert oder provozieren kann.

xOOn
20.09.2002, 14:51
if (nur bei fenstern mit komischen formen)
scheiss windows ich weiss zwar dass er sich gerne beim repainten der teile zeit laesst aber das ist mir neu
else
gfx treiber ?

Felix Kaiser
20.09.2002, 14:56
Ich tippe auch eher auf den Grafiktreiber, ist nur nen billiger Trident Chipsatz in meinem Laptop. Der Bug tritt auf anderen Win2k Systemen nicht auf.

xOOn
20.09.2002, 15:04
manche progs machen probs beim verschieben weil die bei jeder pixelaenderung die ganze form neuzeichenen und das bei aufwaendigen forms stockt :)

bei mir laesst sich nichtmal winamp3 schnell verschieben ohne nen schweif zu hinterlassen

[::sqrt::]
20.09.2002, 16:14
Thanks,
Zapata's Link war genau das was ich gesucht hab.:cool:

Felix Kaiser
20.09.2002, 20:48
xOOn: Nee, so nicht. Es reicht wenn ich ne normale MessageBox von Windows über meine abgerundeten Forms schiebe. Die CPU Auslastung kommt nicht sonderlich hoch, es stockt auch nix. Schaut einfach nur lustig aus. Vielleicht bekomm ich da irgendwie mit bissl Verkrampfen nen Screenshoot hin oder so :)

Schaf
20.09.2002, 22:36
und hier nochmal das teil für delphi ...

Felix Kaiser
21.09.2002, 10:22
So siehts normal aus:
http://www.darkenemy.com/link/Normal.png

So wenn eine MessageBox das Ding überlappt:
http://www.darkenemy.com/link/Defekt.png

Scheint aber vorzugsweise bei MessageBoxes zu passieren :confused:

xOOn
21.09.2002, 12:04
sieht doch geil aus der effekt :p :p