最近要做一个项目,做界面时遇到了这个问题,找了好多资料,终于解决了,在此记录一下,希望对有需要的人有所帮助。好了,不多说了,具体的处理如下:
新建一个类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分个窗口,设置分割条不可移动
时间: 2024-10-20 18:43:55