いま、VC++を勉強中ですが、スプリッタ-をつかって、以下の
分割ウインドウをつくりました。
Pane-1:CTreeView
Pane-2:CListView
Pane-3:CView(もしくは、CHtmlView)
ここにそれずれ、ToolBarを表示させたい
(ちょうどMDIが3画面あるように)のですが
手法をご存知の方がいれば教えて下さい。
タイトルバーまではわかったのですが・・・・
MDIでそれぞれのウインドウがドッキングできれば
MDIのドッキングの方法がわからなかったので
スタティックスプリッタ-を採用しております。
ツールバーは普通、フレームウィンドウにしかドッキングできません。
そこで、分割ウィンドウの各ペインに、子フレームウィンドウを乗せれば出来るような気がしま
す。
子フレームは、CMainFrame と同じように、CFrameWnd から派生させます。
そして、CMainFrame の OnCreateClient で分割ウィンドウを作成したあと、以下のようなコ
ードを入れます。
// 子フレームの作成
CFrame1* pFrame1 = (CFrame1*)RUNTIME_CLASS(CFrame1)->CreateObject();
if (!pFrame1->Create(NULL, NULL, WS_CHILD | WS_VISIBLE,
CRect(0, 0, 0, 0), &m_wndSplitter, m_wndSplitter.IdFromRowCol(0, 0)))
return FALSE;
// ビューの作成
CView1* pView1 = (CView1*)RUNTIME_CLASS(CView1)->CreateObject();
if (!pView1->Create(NULL, NULL, WS_CHILD | WS_VISIBLE,
CRect(0, 0, 0, 0), pFrame1, AFX_IDW_PANE_FIRST, pContext))
return FALSE;
これを、すべてのペインに対して行います。
m_wndSplitter の CreateView を呼び出す必要はありませんし、基本クラスの
OnCreateClient も呼び出してはいけません。
子フレームもビューも、メインウィンドウが破棄されると、自分で自分を delete してくれるの
で、特別な終了処理は不要です。
ツールバーは、それぞれの子フレームの OnCreate の中で作成します。メインウィンドウのツー
ルバーの作成方法と何ら変わりはありません。
たぶん、これでできると思います。
TADさん、
早速な、しかも丁寧な返事ありがとうございます。
これから、挑戦してみます。
成功したら、またご連絡致します。
またここでご質問させていただく事も
あるかと思いますので、
今後ともよろしくお願いします。
TADさん、本当に有難うございました。
できました。
しかし、何故すぐわかるんですか?
やっぱり、経験数ですか?
この、ホームページ昨日何気なしに
見つけましたが、
みなさん親切だし、教えていただける
人も多いみたいだし、
非常にいいホームページだと思います。
私も、早く困っているひとに
教えてあげれるようになって、
『恩返しをしなくては・・・・』
と思います。(まだまだ先かも???)
最後に、TADさん有難う御座いました。
またどーしても判らないことがありましいたら
(きっとあると思います)よろしく
お願いします。
すみません。『解決時チェック』するのを忘れました。
「チェック」します。
おちょこちょいですみません。
『ちぇっく』再度します。