Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

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

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

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

  • ベストアンサー
  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

表示されるダイアログの方で設定する事で簡単に出来ます。 サンプルコード  ダイアログの初期化ルーチン内で行います。サンプルコードでは、クライアント領域の中央にでる様にしています。  ソースを読めば大体何をやっているのか解ると思うので、解説は許して下さいね。 BOOL CHogeHoge::OnInitDialog() { CDialog::OnInitDialog(); // TODO: この位置に初期化の補足処理を追加してください RECT lpRect; int x,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 となります }

nabezo-
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A