0

通常、メッセージボックスは次のように機能します。

if(ShowMessageBox("Title","Text",MB_YES_NO) == MB_YES)
{
   //the user responded yes
}

しかし、私はGUIシステムを作成したゲームに取り組んでおり、メッセージボックスが表示されても、バックグラウンドでアニメーションが発生しているため、スレッドをブロックするだけではアニメーションが停止します。

現在のところ、メッセージボックスを表示する方法であり、IMessageHandler *を指定する必要があり、ダイアログ結果とともに呼び出されます。

何かを見落としているのかしら。これを行うためのより良い方法はありますか?それは通常行われている方法により似ているかもしれません。他のゲームはどのようにそれに近づくことができますか?

ありがとう

4

1 に答える 1

0

複数のオプションがあります。

  1. メッセージ ボックスが (タイトル、メッセージ、ボタン テキスト) から読み取り、(閉じる前の結果) に書き込む View-Model クラスを作成し、表示する前に VM をメッセージ ボックスに渡し、閉じた後に VM から結果を読み取ります。

    (VM をメッセージ ボックスに渡し、コマンド/イベント ハンドラー内で VM を更新する代わりに、コマンド パターンを使用するか、メッセージ ボックスにイベントを配置する方が適切です)。

  2. コマンド パターンまたはイベントを使用して、メッセージ ボックスからの結果を (閉じる前に) 呼び出し元 (またはビュー モデル) に直接渡します。

  3. メッセージ ボックスへの show dialog スタイルの呼び出し (ブロック) を使用しますが、それを別のスレッドで実行してから、メイン スレッドが読み取れる場所に結果を書き込みます。

于 2012-06-18T22:51:07.593 に答える