我用CSplitterWnd分成了水平的3个部分,我希望有变得一个分割条不起能拖动,该如何去做呢?

解决方案 »

  1.   

    重载CSplitterWnd,处理wm_mousemove/wm_lbuttondown消息,不要调用默认的消息处理
      

  2.   

    请问要怎么才能知道,我操作的时第一个切分条还是第二个切分条呢?第一个可以拖动,而第二个则不可以。我尝试着用
    void CMySplitterWnd::OnLButtonDown(UINT nFlags,CPoint point)
    { CRect rc;
    GetClientRect(rc);
    if(point.x>(rc.Width()-177))
    CWnd::OnLButtonDown(nFlags,point);
    else
            CSplitterWnd::OnLButtonDown(nFlags,point); }的方法,因为我许要最右边177个像素的位置固定,可是当我拖动第一个切分条向右的时候,第二个分割条并不是固定的,而是也随之向右移动了,这是怎么回事呢?
      

  3.   

    (1) int CSplitterWnd::HitTest(CPoint point)可以确定是哪个Splitter Bar
          返回值201是第一个竖直的SplitterBar,202是第二个,...
    (2)重载RecalcLayout,自己计算各个窗口的大小