ここのところ、作成したMFCプログラムでなぜか、どこに次のようなコードを書いてもメッセージボックスが表示できなくなってしまっていました。
MessageBox(_T("test"), _T("test"), MB_OK);
とか
AfxMessageBox(_T("test"));
とかです。
本当に基本的なメッセージボックスの表示方法ですが、どこに書いても音が鳴るだけで、メッセージボックスが表示されない!
そして、音の後に [Alt] キーを押すと、なぜかメッセージボックスが表示される・・・
メッセージボックスの表示が [Alt] キー入力を待っているような感じになってしまっていたのです。
原因がわからず、プログラム全体を 少しずつコメントしたり戻したりした結果、努力の甲斐無く、全く原因がつかめませんでした。
そして、スケルトンからやり直して、ちょっとづつコードを足していって・・・最初は問題なく、表示されていたため、ちょっとがんばってたくさんコードを移植すると発生! (^^;) もっとじっくりやればよかった・・・
それでもその間のコードを確認しながらやってみるてやっと鍵を見つけました!
ここです!
void CXxxxYyyyView::OnPaint()
{
CPaintDC dc(this); // これを消していました
CPaintDC は、画面の無効領域だけを更新するためのDCですが、使わなかったので、消してしまって、CDC* pDC = GetDC(); とやって、そちらのDCを使用していました。
が、どうやらここで、CPaintDC をインスタンス化しないことが原因で、メッセージボックスが出なくなっていたようです。
こんな事もあるんですね・・・・ MFC ・・・・・