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分个窗口,设置分割条不可移动,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。