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.