0

Win32プログラミングでは、MessageBox関数はアクションを必要とするダイアログを起動します。「OK」を押すまで、アプリケーションの別のウィンドウにフォーカスを与えることはできません。Visual Studio 2008のリソースエディターでデザインしたダイアログボックスがあります。問題は、それを起動するメニュー項目をクリックできることです。そのダイアログが表示されている間に、もう一度クリックして別のダイアログボックスを表示できます。そのうちの。また、ダイアログが開いている間、アプリケーションの残りの部分を使用できます。

ユーザーがカスタムダイアログで「OK」または「キャンセル」を押して、まるでメッセージボックスであるかのように、アプリケーションで他のことをすべて実行できるようにしたいと思います。どうすればこれを達成できますか?Dialogリソースに設定できる特定のWindowsスタイルまたは元スタイルはありますか?WS_TOPMOSTを試しましたが、効果がありません。他に何を試すべきかわかりません。

4

1 に答える 1

1

ダイアログはDialogBox()で起動する必要があります。、DialogBoxParam()、または任意の直接ダイアログモーダルランチャー。さらに、アプリケーションを呼び出すときは、アプリケーションのトップレベルウィンドウを親ウィンドウとして指定する必要があります。これを行うと、ダイアログがモードレスではなくモーダルになります。リソーススクリプトのダイアログテンプレートにもWS_POPUPウィンドウスタイルを使用することが重要ですが、通常はデフォルトで設定されているため、問題はない可能性があります。

于 2012-10-02T06:35:08.870 に答える