みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ダイアログを自分の好きな位置に表示したい

VCで簡単なプログラムを造っています。
ダイアログベースです。
EXE を実行した時に表示されるダイアログを、自分の指定した位置に
表示させる方法はあるでしょうか。
また、そのダイアログから DoModal関数で別のダイアログを表示する場合、
同様に、自分の指定した位置に表示させる方法はあるでしょうか。
デフォルトのままだと、1つ目のダイアログは画面の中央に、
DoModal関数で表示させたダイアログは、1つ目のダイアログの上に
なります。

投稿日時 - 2001-05-18 13:29:30

QNo.77713

すぐに回答ほしいです

質問者が選んだベストアンサー

表示されるダイアログの方で設定する事で簡単に出来ます。


サンプルコード
 ダイアログの初期化ルーチン内で行います。サンプルコードでは、クライアント領域の中央にでる様にしています。
 ソースを読めば大体何をやっているのか解ると思うので、解説は許して下さいね。

BOOL CHogeHoge::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: この位置に初期化の補足処理を追加してください
RECTlpRect;
intx,y;
GetClientRect(&lpRect);
//
x = m_rect.left - (lpRect.right / 2);
y = m_rect.top - (lpRect.bottom / 2);
SetWindowPos(NULL,x,y,0,0,SWP_NOSIZE | SWP_NOZORDER );
//
return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
// 例外: OCX プロパティ ページの戻り値は FALSE となります
}

投稿日時 - 2001-05-18 13:37:49

お礼

ありがとうございました。
解決することができました。

投稿日時 - 2001-05-18 20:43:24

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問