• 締切済み

MFC モーダルダイアログ表示中に

MFCでプログラムを組んでいます。 以下のような状態なのですが、解決できる方法はありますか? (1) メインアプリケーションクラス(CWinAppクラスの派生クラス)から、フレームウィンドウを表示。 表示方法:CreateNewFrame()実行 → InitialUpdateFrame()実行 (2) (1)で表示されたウィンドウからモーダルダイアログを表示。 表示方法:モーダルダイアログクラスのDoModal()実行。 (3) メインアプリケーションクラスから(1)で表示されたウィンドウに対して、WM_CLOSEをSendMessage()。 (3)の実行後 (1)、(2)で表示された画面は両方とも閉じますが、モーダルダイアログでアサートします。 目的は、両方の画面が表示されている状態でメインアプリケーションを終了するときに、両方の画面をアサートすることなく閉じることです。 そもそもモーダルダイアログを外部から閉じること自体できるのかどうかわからないのですが、 もしできないとしたら、目的を達成するためにはどうすれば良いのでしょうか? よろしくお願いします。

みんなの回答

  • BLK314
  • ベストアンサー率55% (84/152)
回答No.1

>(3)の実行後 (1)、(2)で表示された画面は両方とも閉じますが、 >モーダルダイアログでアサートします。 ASSERTなら条件があるはずです。 ( ASSERT (n >= 0) とか....) どういうASEERTになっているかわからないと 適切なアドバイスができませんので 詳しく教えてください

real_neo
質問者

お礼

ありがとうございました。

real_neo
質問者

補足

>ASSERTなら条件があるはずです。 失礼しました。 確かアサートは、(ASSERT(m_hwd))のような感じで、 ウィンドウハンドルを参照してたと思います。 見たときは、画面が閉じられたんでそりゃアサートするわ、と思いました。 ただ、同じようなつくりの画面では発生しないので 何か回避方法があるのでは、と思って投稿しました。

関連するQ&A