重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

開発環境
Windows XP
Visual C++6.0

親ウインドウの、メニューから複数のモードレスダイアログを
表示しようとしています。
<ソースの抜粋>
void CSmp1View::OnDialog1()
{
static Modaless aaa;
static tagRECT bbb;

aaa.Create(NULL,"Moderess",NULL, bbb ,this,IDD_DIALOG1,NULL);
aaa.ShowWindow(SW_SHOW);
}
モードレスダイアログは、表示できるのですが
2つ目のダイアログを表示しようとすると
異常終了します。
また、1つめのダイアログを終了してから、メニュバーから
モードレスダイアログを表示しようとしても
同じエラーで異常終了します。

また、任意のモードレスダイアログを閉じたときに
何か気をつけることがあるでしょうか?

参考コードなどがありましたら
ご教授ください。
よろしくお願いします。

A 回答 (1件)

検証していないので不確かですが、


静的変数にしているのが問題ではないでしょうか。
一度Modalessをメンバ変数にポインタとして持って
CSmp1View::OnDialog1()内で動的生成されてみてはいかがでしょうか?

#aaa.Create()が2回呼ばれる所で落ちてそうな気がしたので
    • good
    • 0
この回答へのお礼

御礼が遅くなり、申し訳ありません。
「動的に」をヒントにコーディングしたところうまくいきました。
また、ダイアログを閉じるところでDestroyWindow()をコールして
ダイアログの情報をフリーすることで、1回閉じて、もう1回ダイアログ表示で異常終了することを回避できました。

お礼日時:2006/10/12 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!