9

2つの異なる方法(エディションモードとプログラミングモード)で使用できるダイアログ(CDialog派生クラス)があります。

ダイアログがプログラミングモードで使用するために開いている場合、メインビュー(ツールバーの一種)を変更するために使用されるのはモードレスダイアログです。エディションモードで開いている場合、ユーザーはダイアログ自体の構成を変更できます。この場合は、モーダルダイアログです。

現在、これらは2つの異なるダイアログであり、違いはほとんどありません。ダイアログが必要なだけで、ユーザーがダイアログのボタンを押すだけでプログラミングモードとエディションモードを切り替えることができます。

したがって、実行時にモードレスダイアログをモーダルダイアログに変換する必要があります。その逆も同様です。それを達成する方法はありますか?

ありがとう。

4

3 に答える 3

2

これは、ダイアログを閉じて再度開かないと簡単にはできません。その後、必要に応じて ShowWindow または DoModal を呼び出すことができます。

于 2009-08-04T06:43:22.910 に答える
1

それは正しくありません。MFC のソースを見ると、モーダル ダイアログが技術的にもモーダルではないことがわかります。これを適切に機能させるには、多くのことをいじる必要がありますが、基本的には、「モーダル」ウィンドウの親を無効にし、「モーダル」ウィンドウが閉じるときに再度有効にするだけです。

私はこれを個人的に行ったので、これでうまくいくかもしれませんが、あなたが何をしようとしているのか正確にはわかりません.

于 2009-08-04T20:22:37.900 に答える