モードレスダイアログを中央表示させたい – プログラミング – Home

モードレスダイアログを中央表示させたい
 
通知
すべてクリア

[解決済] モードレスダイアログを中央表示させたい


初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

初心者です、よろしくお願いします。

モーダレスモードで表示しているダイアログを、呼び出し元画面の中央に
表示したいのですが、できません。

中央表示させたいダイアログ: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アプリケーションです。


引用未解決
トピックタグ
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

CenterWindow()の引数をきちんと指定しても駄目でしょうか?


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

bun様、ありがとうございます。

CenterWindow(GetParent())
としたところ、中央に表示されました。
引数はデフォルトじゃいけないんですね。
ありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました