はじめて質問いたします。
初歩的なことなのかもしれませんが、何卒ご教授願います。
環境 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が
すぐに返ってきます。)
この現象についてどんなことでも良いのでご存知の方が
いらっしゃいましたら、是非お教え頂けないでしょうか。
よろしくお願いいたします。
メッセージハンドラの中の処理で、
WM_DESTROY のメッセージに対する処理で
PostQuitMessage(xxx) を書いていると思いますが、
これをすると、MessageBox() も終了させられてしまいます。
エラー発生時は、WM_DESTROYがきても無視するようにして、
MessageBox() を呼んだ後、PostQuitMessage(xxx)すると
できますよ。
yas0302さん
お返事ありがとうございます。
早速試したところ、MessageBoxを表示させることができました。
本当にありがとうございました。