MFC-Anwendung über Fullscreen Anwendung



  • Hallo,
    ich habe ein MFC Programm im Dialogfeld-Stil geschrieben, dass ich über eine Vollbild-Anwendung (Direct-X Spiel) legen will.

    Ich habe den Dialog mit der Eigenschaft "TopMost" ausgetstattet um es über andere Fenster zu bringen.
    Wenn ich das Spiel im Window-Mode habe, funktioniert dass ohne Probleme genau so wie ich es will.
    Aber im Vollbildmodus nicht.

    Gibt es eine Möglichkeit das Fenster über die Vollbildanwendung zu bekommen?
    z.B. andere Eigenschaft als TopMost, oder mit dem Window-Handle des Spiels dessen Eigenschaften ändern?

    Vielen Dank schonmal für alle Antworten.


  • Mod

    Das geht nicht!
    DirectX beantsprucht den Monitor ganz für sich alleine.



  • Hmm, ich versteh dann nur nicht ganz wiso es im Windowed-Mode geht.
    Schliesslich wird das ja trotzdem per DirectX gerendert.

    Aber:
    Kann mir dann jemand eine Seite nennen wo ich mich gut darin einlesen kann, wie man Overlays erzeugt?
    Ich hab für Overlays in C++ bisher nur 2 Beispiele gesehen, die auch noch mehr schlecht als recht domukemtiert waren.
    Eines davon bringt beim Ausführen eine Fehlermeldung und das andere funktioniert nur mit dem Desktop-Hintergrund.

    Frage:
    Wenn ich ein Overlay habe, kann ich dass ja nur bedienbar machen, wenn ich die Mausposition auswerte und Tastenklicks vor dem Spiel abfange(hooken).
    Oder gibt es eine einfachere Möglichkeit?
    Gibt es auch noch eine andere Möglichkeit, außer Overlays um über eine Vollbild-DirectX Anwendung zu schreiben?



  • Ich kann dir leider nur ein paar deiner weniger interessanten Fragen beantworten.
    Es geht im Windowed Mode, weil im Windowed Mode das "flippen" ganz anders vor sich geht, da rendert die Karte einfach in einem Buffer, und der wird dann ganz normal wie jede andere Grafik unter Windows (mit Clipping und allem) in das entsprechende Fenster kopiert. Im Fullscreen Mode dagegen wird zumeist die ganze Primary Sufrace "umgeschaltet". Ausserdem ist der Fullscreen Mode ja genau dafür da dass "es nicht geht" 🙂

    Zum Thema Mouse Input: ich denke das wird wohl die einzige Möglichkeit sein (Hooks), allerdings kannst du in Spielen nichtmal 100% davon ausgehen dass der sichtbare Mauszeiger immer auch dort ist wo der Windows-Mauszeiger sich befindet...

    Und andere Möglichkeit über ne DX Fullscreen Applikation "drüberzuzeichnen" als eben mit Overlays kenn ich zumindest keine...


Anmelden zum Antworten