フルスクリーンのDirectXアプリケーション上にメッセージボックスを表示する


8

カスタムアサーションハンドラーで、この失敗を無視できるかどうかを確認するメッセージボックスを表示したいと思います。ただし、DirectXゲームが全画面の場合、MessageBox関数を全画面の上に表示できません。

注:MessageBoxの最初のパラメーターは、デバイスの作成に使用されるHWNDですが、それでも機能しません。

これは可能ですか?

回答:


3

ええ、あなたは運が悪いかもしれません-(ServiceBoxを指定できるMessageBoxOptionsがありますが、これは正しいことをするかもしれませんhttp://msdn.microsoft.com/en-us/library/system.windows.forms .messageboxoptions.aspx

通常、私はその時点で独自のメッセージレンダリングを記述します(xboxなど、どこでもアサートを使用できるようにするため)。


取得できる最も近いのは、MB_SETFOREGROUNDを指定することです。これは、なんらかの理由で時間の50%で機能します。
ジェフ

1

代わりにWPF GUIを作成してみてください(プロトタイプから始めます)。
これで問題が解決します。
(フルスクリーンのWPFのDirectXサーフェスにレンダリングし、直接スクリーンにレンダリングしないでください。)


1
なぜこれが投票されたのですか?私は以前これをやったことがあり、それはうまくいきます。
ダニーVarod

WPFでは、マネージドスタックを作成する必要があります。この場合、純粋なWin32 / DirectXソリューションが必要でした。
ジェフ

3
さて、質問の中でそれを述べてください。
ダニーVarod

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.