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

A 回答 (1件)

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




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

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 となります
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/05/18 20:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング