【環境】
WindowsXP Service Pack 3
Microsoft Visual Studio .NET 2003
MDIのアプリケーションを作成しています。
アプリケーションには数種類のダイアログが存在し
DoModalによってダイアログを表示したりしています。
このようなアプリケーションでダイアログが表示されているか
いないか分かるような方法はないでしょうか?
今、考えている方法は、DoModalでフラグをセットし
Destoroyでフラグをリセットしようと思っています。
他にもっと効率的な方法をお知りの方いましたしたら
ご教授いただけないでしょうか?
※どのダイアログかを特定する必要はありません。
よろしくお願いします。
DoModal はダイアログが閉じられるまで戻らないので、ダイアログが開いている状態で別
の処理をするということは基本的にはできないはずです。
どうしてダイアログが開いているかどうか判定する必要があるのですか?
説明不足ですいません。
DoModalでダイアログを表示した後、ダイアログを移動すると
ダイアログの下にあるViewなどの描画処理が行われてしまいます。
ダイアログが表示されているときは、この描画の中の
処理を部分的に行いたくないのです。
よろしくお願いします。
> ダイアログが表示されているときは、この描画の中の
> 処理を部分的に行いたくないのです。
フラグでも用意すればいぃんじゃなくて?
bool ダイアログ表示中;
Dialog dlg;
ダイアログ表示中 = true;
dlg.DoModal();
ダイアログ表示中 = false;
やはりフラグを使うしかなさそうですね。
フラグによりダイアログの表示・非表示を判断するような
処理を実装しようと思います。
ご回答くださった方、ありがとうございます。
>DoModalでダイアログを表示した後、ダイアログを移動すると
>ダイアログの下にあるViewなどの描画処理が行われてしまいます。
>ダイアログが表示されているときは、この描画の中の
>処理を部分的に行いたくないのです。
ダイアログを表示したときだけ描画内容が変わってしまいませんか?
描画処理内に描画以外の処理をしているのであれば
その方が問題かもしれません。
ダイアログの存在チェックにGetLastActivePopupを使うこともありますが
描画処理内から調べるのであればフラグの方がいいでしょうね。