スプリッター移動

[戻る]
ダカラ 2006/06/18(日) 00:22:42
いつもお世話になっております。
スプリッタを使って次のような3分割画面をSDIで作成しました。

CView1|
------|CView3
CView2|

以下のコードを実行すると3分割はされているのですが、
CView1とCView2の横幅がほとんど0になってしまいます。
どうすれば丁度良い場所に来るでしょうか。
また、CreateViewの時にCSizeでサイズを決定できるようですが、
これ以外に後でウィンドウサイズを変更し、
スプリッタを移動させるにはどうすればよろしいでしょうか。
ご教授よろしくお願いいたします。

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
    int nRet;

    nRet = m_SplitWndMain.CreateStatic( this, 1, 2 );

    nRet = m_SplitWndSub.CreateStatic(
        &m_SplitWndMain, 2, 1,
        WS_CHILD | WS_VISIBLE,
        m_SplitWndMain.IdFromRowCol(0, 0) );

    nRet = m_SplitWndSub.CreateView(0, 0,
        RUNTIME_CLASS(CView1), CSize(120,120), pContext);

    nRet = m_SplitWndSub.CreateView(1, 0,
        RUNTIME_CLASS(CView2), CSize(120,120), pContext);

    nRet = m_SplitWndMain.CreateView(0, 1,
        RUNTIME_CLASS(CView3), CSize(120,120), pContext);

}



環境:WinXP: VC++6.0

シャノン 2006/06/18(日) 00:36:35
http://msdn2.microsoft.com/ja-JP/library/5xttbe5t.aspx

> CreateStatic メンバ関数は、自動的に静的分割ウィンドウの最小値の高さと幅を 0
> に初期化します。Create を呼び出した後、SetColumnInfo と SetRowInfo メンバ関数
> を呼び出してこれらの最小値を調整します。SetColumnInfo や SetRowInfo メンバ
> 関数は、CreateStatic の呼び出し後にも、最適なペインの大きさを指示するために
> 使います。

だってさ。

ダカラ 2006/06/18(日) 10:01:35
[[解決]]
ありがとうございます。解決しました。

古いスレッドには追加発言できません。