分割窗口成功后(子窗口是用CFormView继承下来的),现要将它们固定,我的思路是:一、新建一个类CSplitterMy,基类为CSplitterWnd(由于mfc类向导里没有CSplitterWnd父类,故选择CMDIChildWnd,然后将其改为CSplitterWnd);二、重载该类的OnMouseMove等函数:
void CSplitterMy::OnMouseMove(UINT nFlags, CPoint point)
{
CWnd::OnMouseMove(nFlags, point);
}void CSplitterMy::OnLButtonDown(UINT nFlags, CPoint point)
{
CWnd::OnLButtonDown(UINT nFlags, CPoint point);
}BOOL CSplitterMy::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CWnd::OnSetCursor(pWnd, nHitTest, message);
}这样后,运行之,发现并没有固定,不知何缘故;是不是移动分割栏时候并没有调用到CSplitterMy的这些函数?于是,本人在CMainFrame里加了OnMouseMove()函数,写为:void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值 CSplitterMy::OnLButtonDown(nFlags,point);}
结果可想而知,编译出错,本人初学,望高手指点!
void CSplitterMy::OnMouseMove(UINT nFlags, CPoint point)
{
CWnd::OnMouseMove(nFlags, point);
}void CSplitterMy::OnLButtonDown(UINT nFlags, CPoint point)
{
CWnd::OnLButtonDown(UINT nFlags, CPoint point);
}BOOL CSplitterMy::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CWnd::OnSetCursor(pWnd, nHitTest, message);
}这样后,运行之,发现并没有固定,不知何缘故;是不是移动分割栏时候并没有调用到CSplitterMy的这些函数?于是,本人在CMainFrame里加了OnMouseMove()函数,写为:void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值 CSplitterMy::OnLButtonDown(nFlags,point);}
结果可想而知,编译出错,本人初学,望高手指点!
在CMainFrame中声明一个CSplitterMy(也就是你新建的那个类)类型的指针m_pMySplitter
在你分割窗口时,用m_pMySplitter这个指针就行