Zeigen Sie ein Meldungsfeld über eine DirectX-Vollbildanwendung an


8

In unserem benutzerdefinierten Assertion-Handler möchte ich ein Meldungsfeld anzeigen, in dem Sie gefragt werden, ob dieser Fehler ignoriert werden kann. Wenn unser DirectX-Spiel jedoch im Vollbildmodus angezeigt wird, kann die MessageBox-Funktion nicht über dem Vollbildmodus angezeigt werden.

Hinweis: Der erste Parameter für MessageBox ist der HWND, der zum Erstellen des Geräts verwendet wird, und er funktioniert immer noch nicht.

Ist das überhaupt möglich?

Antworten:


3

Ja, Sie haben möglicherweise kein Glück - (obwohl es eine MessageBoxOptions gibt, mit der Sie ServiceNotification angeben können, die möglicherweise das Richtige tut http://msdn.microsoft.com/en-us/library/system.windows.forms .messageboxoptions.aspx )

Normalerweise schreibe ich zu diesem Zeitpunkt mein eigenes Nachrichten-Rendering (um sicherzustellen, dass Sie die Zusicherung überall verwenden können, auf Xbox, was auch immer).


Am nächsten könnte ich MB_SETFOREGROUND angeben, was aus irgendeinem Grund in 50% der Fälle funktioniert.
Jeff

1

Versuchen Sie stattdessen, eine WPF-GUI zu schreiben (beginnen Sie mit einem Prototyp).
Das sollte dein Problem beheben.
(Auf die DirectX-Oberfläche von WPF im Vollbildmodus rendern und nicht direkt auf den Bildschirm.)


1
Warum wird das abgelehnt? Ich habe das schon einmal gemacht und es funktioniert.
Danny Varod

Für WPF muss ein verwalteter Stapel erstellt werden. In diesem Fall brauchte ich eine reine Win32 / DirectX-Lösung.
Jeff

3
Nun, geben Sie das in der Frage an.
Danny Varod

0

Soweit ich das letzte Mal feststellen konnte, ist dies nicht möglich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.