Icq und andre Stay on Top Parasiten besiegen :p



  • Immer wenn ich mein Spiel starte und icq oder ein anderes Programm das immer im Vordergrund bleiben eingestellt hat ist maximiert, malt es diese Fenster über mein Spiel drüber.

    Die Windows Taskleise wird etwa "nur" drübergemalt, aber ansonsten läuft das Spiel, bei Icq passiert aber zum Beispiel grafisch gar nichts(alles andre geht hrhr Öö ).

    Kommerzielle Spiele zeigen das Gleiche Verhalten, allerdings immer nur 3-4 Sekunden und danach werden sie dann korrekt angezeigt.

    Nun ist meine Frage: Wie geht das :p

    Sprich wie kann ich dafür garantieren das keine anderen Programme sich über mein Spiel quetschen und so ein recht unschönes Chaos produzieren?
    Es geht um das Spiel Eternal Reign, welches mit SDL programmiert ist und im Vollbild ausgeführt wird.



  • Beim Oeffnen des Fensters muss man den erweiterten Stil WS_EX_TOPMOST setzen. Wenn die SDL das Fenster oeffnet, muss man dafuer sorgen, dass das Stil-Bit gesetzt ist.

    Normalerweise oeffnet man ein Fenster mit dem Stil WS_EX_TOPMOST, sowie WS_OVERLAPPED (nicht WS_POPUP!), und initialisiert anschliessend DirectX Graphics im Fullscreen Mode fuer das Fenster.

    Mit SetWindowPos() kann man das Fenster auch nachtraeglich in den TopMost-Status befoerdern.

    DirectX Graphics muss im Exclusive Mode initialisiert werden, wenn die Anwendung alleine den Bildschirm verwenden soll.

    Keine Ahnung, wie das mit SDL geht. Notfalls muss man die SDL entsprechend anpassen. Aber es gibt bestimmt noch eine andere Moeglichkeit.


Anmelden zum Antworten