環境
WindowsXP sp3
VisualStudio2005 MFC
SDIでプログラムを作成するとき、メインウィンドウ作成直後に何か処理を
するには、どうすればよいでしょうか?
最初は、MainFrameやViewのOnCreateの中に処理を記述すればよいのでは
と思っていたのですが、例えば、メッセージボックスを表示するコードを
記述すると、まずメッセージボックスが表示され、OKボタンを押すとメイン
のウィンドウが表示されます。
これを最初にメインウィンドウ、次にメッセージボックスの順に表示したい
場合どの様にすればよいでしょうか。
現在は、OnCreateの中でタイマーを作成して、そのタイマーの中で希望する
処理を追加しています。
ほかに良い方法がありましたら教えて下さい。
宜しくお願い致します。
メインウィンドウを表示している箇所はInitInstance()の中なので、
以下のようにメインウィンドウ表示直後に処理を追加してやれば
可能です。
BOOL CXXXApp::InitInstance()
{
...略...
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
// ↓追加
static_cast<CMainFrame*>(m_pMainWnd)->ShowMessageBox();
return TRUE;
}
void CMainFrame::ShowMessageBox()
{
AfxMessageBox(_T(メッセージ));
}
Kellyさん 回答ありがとうございます。
教えていただいた方法で動作できました。
ありがとうございます。