初心者です、よろしくお願いします。
モーダレスモードで表示しているダイアログを、呼び出し元画面の中央に
表示したいのですが、できません。
中央表示させたいダイアログ:CWaitDlg* m_pWait (CHogeDlgのメンバになっている)
以下、現在のソースです。
CHogeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_pWait = new CWaitDlg;
m_pWait->Create(this);
m_pWait->CenterWindow();
//時間のかかる処理
....
return TRUE;
}
CHogeDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
if(bShow)
{
m_pWait->DestroyWindow();
}
}
CHogeDlgを表示させる際に時間のかかる処理を行うため
OnInitDialog内でウェイト画面を表示させ、CHogeDlgが表示されたら
ウェイト画面を閉じるという処理を行っています。
CenterWindow()を入れてもデスクトップの中央に表示されてしまいます。
ちなみに、モーダルでウェイト画面を表示させると正常にCHogeDlgの中央に表示されます。
なにか足りない処理があるのでしょうか?
環境はVC2003でMFCアプリケーションです。
CenterWindow()の引数をきちんと指定しても駄目でしょうか?
bun様、ありがとうございます。
CenterWindow(GetParent())
としたところ、中央に表示されました。
引数はデフォルトじゃいけないんですね。
ありがとうございました!