CSplitterWndで分割されたウィンドウのビューを切り替えるには?

解決


はむはむ  2007-10-26 09:51:03  No: 66657

お世話になります。

現在、vc2003+MFCの環境でSDIのアプリでCSplitterWndを使用して
ビューを左右に分割しています。
ちなみに、左はCTreeViewで右はCFormViewになります。

やりたいのは、左のツリーに選択された項目により
右側のフォームを切り替えたいのです。

分割されていないビューでは、ビューの切り替えは出来るように
なったのですが、分割した状態でやると全体にビューが重なった
ように表示されました。

切り替えるビューの作成は以下のようにしています。

CView* pViewRemove = (CView*)m_wndSplitter.GetPane( 0, 1 );
m_pView = new XXX;//CFormViewを継承したクラス
CWnd* pParent = pViewRemove->GetParent();
m_pView->Create( NULL, NULL, AFX_WS_DEFAULT_VIEW, rectDefault,
    pParent, AFX_IDW_PANE_FIRST+1, NULL );

おそらく、親ウィンドウの設定がおかしいのではないかとは思っています。

ご存知の方、おられましたらご伝授願えますでしょうか。
宜しく御願いします。


はむはむ  2007-10-27 06:25:11  No: 66658

同様の内容を質問している掲示板を発見し、
無事解決できました。

m_wndSplitter.DeleteView(0, 1);
m_wndSplitter.CreateView(0, 1,RUNTIME_CLASS(CTeamEditFormView), CSize(100, 100), NULL);
m_wndSplitter.RecalcLayout();

貴重なスペースを使わせて頂きありがとうございました。
今回はこれで解決とさせて頂きます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加