MessageBox()が表示されない

[戻る]
ark 2002/07/18(木) 00:57:27
はじめて質問いたします。
初歩的なことなのかもしれませんが、何卒ご教授願います。
環境 W2K
   VC++6.0 SP5
   SDK

  WM_CREATEで、ある初期化処理を行っており、失敗したら
-1を返すようにしています。
その場合、CreateWindow()の戻り値として無効なハンドル
(NULL)が返ってきますよね。
で、NULLが返ってきたらエラー表示の為以下のように
MessageBox()をコールしているのですが、MessageBoxが
表示されません。

MessageBox(NULL, "Err - CreateWindow()", "Error", MB_OK);

正確には、表示されている(?)のですが、すぐにIDOKが
返ってきてしまいます(MessageBox表示音が鳴る)。
(MessageBox()の第4引数をMB_YESNOにすると、IDYESが
すぐに返ってきます。)

 この現象についてどんなことでも良いのでご存知の方が
いらっしゃいましたら、是非お教え頂けないでしょうか。

 よろしくお願いいたします。

yas0302 2002/07/19(金) 00:31:26
メッセージハンドラの中の処理で、
WM_DESTROY のメッセージに対する処理で
PostQuitMessage(xxx) を書いていると思いますが、
これをすると、MessageBox() も終了させられてしまいます。
エラー発生時は、WM_DESTROYがきても無視するようにして、
MessageBox() を呼んだ後、PostQuitMessage(xxx)すると
できますよ。

ark 2002/07/19(金) 02:10:43
[[解決]]
yas0302さん
お返事ありがとうございます。

早速試したところ、MessageBoxを表示させることができました。
本当にありがとうございました。

古いスレッドには追加発言できません。