• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ドッキングウィンドウがドッキングしている場合のメインフレームのクライア)

ドッキングウィンドウがドッキングしている場合のメインフレームのクライア

このQ&Aのポイント
  • 複数の子ウィンドウをメインフレームの中の表示可能領域に自由に配置する方法を探しています。また、ドッキングウィンドウの取得方法についても教えてください。
  • メインフレームのクライアント領域内にドッキングウィンドウを配置したいですが、取得方法がわかりません。また、ドッキングウィンドウの取得方法も教えてください。
  • VisualC++2008を使用して、メインフレーム内にドッキングウィンドウを配置したいです。表示可能領域の取得方法やドッキングウィンドウの取得方法を教えてください。

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

  • ベストアンサー
回答No.1

MDIの場合、ウインドウの構成が次のようになっています。(あいだにMDIClientというウインドウが1枚挟まっている) MDIClientのウインドウサイズを取得すればよいでしょう。 MDIFrameWnd   | MDIClient   | [MDIChildWnd][MDIChildWnd]...[MDIChildWnd] たしか、MDIClientのIDは、AFX_IDW_PANE_FIRSTだったと思います。 アプリのメインウインドウがYourMDIFrameWndだとして、 pYourMDIFrameWnd->GetDlgItem(AFX_IDW_PANE_FIRST)->GetWindowRect() で取得できないでしょうか。 あるいは、MDIChildWndの側から、 pYourMDIChildWnd->GetParent()->GetWindowRect() でも取得できると思います。 ちなみに、MDITileは、MDIClientに対してメッセージを送信するだけです。 ::SendMessage( hWndMDIClient, WM_MDITILE, 0, 0) ;

grgrq
質問者

お礼

返事が遅れてすみません。ずっと回答がないと思ってまして・・・今日気付きました。 実は力ずくで解決してしまったのですが・・(何気にかなり苦労しました) MDIClientいうのが間にあるわけですね。来週になってしまうのですが試させて頂きます。これでうまくいくならとてもシンプルなコードになります。力ずくの苦労は無駄になりますが。

関連するQ&A