首页 > 代码库 > mfc分个窗口,设置分割条不可移动

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 onm ouseMove(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); }