[C++/C#] Fenster IMMER im Vordergrund halten?

locomarco

Commander
Registriert
Aug. 2009
Beiträge
2.446
Ich machs mal kurz, gibts ne möglichkeit ein Fenster ausnahmslos immer im Vordergrund zu halten?
Winamp zb. hat ja die Option "Immer im Vordergrund". Wenn ich mit Firefox allerdings Vollbild mache, ist Winamp wieder im Hintergrund.

Es geht jetzt nicht speziell um Winamp, sondern allgemein ob sowas mit C++ oder C# möglich ist.

Grüße
 
die frage hat nichts mit c++/c# zutun. das ist ne frage der windows-api, falls du ein programm unter windows haben willst, mit dieser eigentschaft.

und es gibt funktionen dafür. einfach mal die windows api durchsuchen (thematik fenster).
 
ja such mal im Designer fall du VS hast! da stehen alle eigenschaften deiner Application
 
... beim .NET Framework gibt es eine Eigenschaft dafür am Form.

Code:
// immer im Vordergrund
deinFormular.TopMost = true;

// normales Verhalten
deinFormular.TopMost = false;
 
TopMost reicht manchmal nicht, wenn es mehrere Forms mit TopMost gibt^^
Mit nem Timer das Form immer wieder in den Vordergrund holen wäre die noch sicherere Variante, für die meisten reicht aber das TopMost.
 
... ich würde es ohne Timer lösen.

Er sollte schon wissen wie viele Forms da mit TopMost auf 'true' rum dümpeln. ;)

Wenn aus deiner Anwendung keine weiteren Forms benötigt werden und daher so zu sagen alles andere außer dein Form, welches im Vordergrund sein soll, gesperrt werden kann, kannst du das Form auch wie folgt aufrufen:
Code:
deinFormObjekt.ShowDialog(this);

Aber wie gesagt, dann ist der Rest der Anwendung gesperrt. Da halte ich die TopMost Eigenschaft noch für eleganter.
 
Werd nachher mal eure vorschläge ausprobieren, danke :)
 
Eine Funktion, die ein Fenster "für immer und ewig" im Vordergrund hält gibt es nicht:
How do I create a window that is never covered by any other windows, not even other topmost windows?"

Imagine if this were possible and imagine if two programs did this. Program A creates a window that is "super-topmost" and so does Program B. Now the user drags the two windows so that they overlap. What happens? You've created yourself a logical impossibility. One of those two windows must be above the other, contradicting the imaginary "super-topmost" feature.
Quelle: Raymond Chen (Windows Entwickler)

Deswegen heißt der Zustand eben "TopMost" und nicht "TopAll". ;)
 
so ein feature mag es in windows vieleciht nicht geben, aber es ist kein unmögliches feature. denn nirgends steht geschreiben, dass es mehr als ein fenster dieses attribut gesetzt haben kann.

man könnte so ein feature so implementieren, dass es nur erlaubt dieses attribut zu setzten, falls kein anderes topall=true hat. oder wenn man es für ein fenster setzt, dann wird es einem anderen fenster mit diesem attribute automatisch entzogen.

"topall" ist perse keine logische unmöglichkeit. lediglich topall+nicht-exklusive wäre eines.

edit: falls man in windows verbieten kann den focus zu wechseln, dann könnte man das sogar mit topmost + focuswechselverbot selbst basteln.
 
Zuletzt bearbeitet:
HAHA... der war gut Blitzmerker... besonders für die CPU ;)

Ich würde sowas vermeiden... es sei den, du willst verhindern dass ein fenster geschloßen wird ;)
 
Zuletzt bearbeitet:
Ok, das wird mir zu viel =P
Naja ist ja nicht so wichtig, sollte nur ein versuch werden.

Danke nochmal an alle.
 
Zurück
Oben