Win32ではPostQuitMessage()を呼んだあとGetMessage()がFALSEを返すまでの間はメッセージボックスが表示できないようだ。
解決法1:
以下の行を削除する。MFCはm_pMainWndが閉じられたときPostQuitMessage()を呼ぶのであらかじめセットしなければ呼ばれない。
1 |
m_pMainWnd = &dlg; |
解決法2:
ダイアログを閉じた後メッセージループを回してキューを空にする。
1 2 |
while(PumpMessage()) ; |
PumpMessageはGetMessageがFALSEだとFALSEを返す。通常1回しか呼ばれないはず。この後ならメッセージボックスを表示できる。