mfc分个窗口,设置分割条不可移动

最近要做一个项目,做界面时遇到了这个问题,找了好多资料,终于解决了,在此记录一下,希望对有需要的人有所帮助。好了,不多说了,具体的处理如下:

新建一个类CFixSplitterWnd继承CSplitterWnd,添加

ON_WM_LBUTTONDOWN()

ON_WM_SETCURSOR()

ON_WM_MOUSEMOVE()

三个消息的响应,主要代码如下:

头文件

1 protected:

2     afx_msg void OnLButtonDown(UINT nFlags, CPoint pt);

3     afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);

4     afx_msg void OnMouseMove(UINT nFlags, CPoint pt);

5     DECLARE_MESSAGE_MAP()

源文件

BEGIN_MESSAGE_MAP(CFixSplitterWnd, CSplitterWnd)

    ON_WM_LBUTTONDOWN()

    ON_WM_SETCURSOR()

    ON_WM_MOUSEMOVE()

END_MESSAGE_MAP()



void CFixSplitterWnd::OnLButtonDown(UINT nFlags, CPoint point)

{    

    // 直接返回,不处理

    return; 

}



BOOL CFixSplitterWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)

{  

    // 当光标进入分割窗口时,不允许改变样子,不处理

    return FALSE; 

}



void CFixSplitterWnd::OnMouseMove(UINT nFlags, CPoint point)

{       

    //将CSplitter类的处理改为由CWnd处理

    //CSplitterWnd::OnMouseMove(nFlags, point);

    CWnd::OnMouseMove(nFlags, point); 

}

 

你可能感兴趣的:(mfc)