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?

Jeff
quelle

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).


quelle
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.)

Danny Varod
quelle
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.

Codierer
quelle