CSplitterWnd类静态拆分窗口,怎么使拆分出来的窗口有固定大小?
就是不能用鼠标动态拖动?
谢了!

解决方案 »

  1.   

    从CSplitterWnd派生一个类,重载WM_MOUSEMOVE消息,不要调用CSplitterWnd::OnMouseMove(...);
      

  2.   


    void CMainFrame::FixMyViewSize()
    { m_wndSplitter.SetColumnInfo(1, 232, 100);
    m_wndSplitter.RecalcLayout();}

    void CMyView::OnSize(UINT nType, int cx, int cy) 
    {
    CView::OnSize(nType, cx, cy);

    // TODO: Add your message handler code here CMainFrame *pMainFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    if (!pMainFrame)
    return;
    pMainFrame->FixMidViewSize();}
      

  3.   

    从CSplitterWnd派生一个类.
    4.1锁定切分条
    当用户创建好分割窗口后,有时并不希望通过拖动切分条来调节窗口的大小。这时就必须锁定切分条。锁定切分条的最简单的方法莫过于不让CSplitterWnd来处理WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_SETCURSOR消息,而是将这些消息交给CWnd窗口进行处理,从而屏蔽掉这些消息。拿WM_LBUTTONDOWN处理过程来说。修改为如下: 
    void CXXSplitterWnd::OnLButtonDown(UINT nFlags,CPoint point)

            CWnd::OnLButtonDown(nFlags,point);

    其余的处理方法类似。