分割ウィンドウ(CSplitterWnd)についての質問です。開発環境はVC++2003です。
右側に2X2の4つの作業用のビュー(CWorkView)、左側に別画面(CCmdForm)を作成したいのですが、画面サイズが指定通りに表示されません。初期状態では左の画面だけ表示されます。作業ビューの縦方向の分割は正しくされていますが、横方向のビューサイズが0になって隠れた状態になります。後から分割枠を移動させて作業ビューを表示させることはできます。またCMainFrame::RecalcLayout() の中でCSplitterWnd::SetColumnInfo() で調整を試みましたが効果がありませんでした。
ちなみにCCmdFormを左にして、作業ビュー(CWorkView) を右にすると問題なく表示されます。どうしてもこの画面構成でなければならないため困っています。何かいい方法は無いでしょうか?
以下参考までにソース
CMainFrame::OnCreateClient() で
if(!_Splitter.CreateStatic(this, 1, 2, WS_CHILD | WS_VISIBLE)) return FALSE;
if(!_Splitter2.CreateStatic(&_Splitter, 2, 2, WS_CHILD | WS_VISIBLE | WS_BORDER, _Splitter.IdFromRowCol(0,0))) return FALSE;
if( !_Splitter.CreateView(0, 1, RUNTIME_CLASS(CCmdForm), CSize(100, 100), pContext)) return FALSE;
if(!_Splitter2.CreateView(0, 0, RUNTIME_CLASS(CWorkView), CSize(100, 100), pContext)) return FALSE;
if(!_Splitter2.CreateView(0, 1, RUNTIME_CLASS(CWorkView), CSize(100, 100), pContext)) return FALSE;
if(!_Splitter2.CreateView(1, 0, RUNTIME_CLASS(CWorkView), CSize(100, 100), pContext)) return FALSE;
if(!_Splitter2.CreateView(1, 1, RUNTIME_CLASS(CWorkView), CSize(100, 100), pContext)) return FALSE;
(画面サイズ CSize(100, 100) はあくまで仮の値です)
以上、宜しくお願いします。
お礼
うまくいきました。ありがとうございました。 たいへんたすかりました。