关于用CSplitterWnd分割View的一点总结
2008-05-24 17:47
417 查看
1.在要分割的View中添加OnCreate消息响应函数 ;
2.分割函数:
int CUserManagerSplitterView::OnCreate(LPCREATESTRUCT lpCreateStruct)
...{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
if(!m_wndUserSplitter.CreateStatic(this, 1, 2))
...{
return FALSE;
}
BOOL bRet = m_wndUserSplitter.CreateView(0, 0, RUNTIME_CLASS(CUserLeftPanView), CSize(200, 100), NULL);
if(!bRet)
...{
TRACE0("Failed to create left user pan!");
return FALSE;
}
bRet = m_wndUserSplitter.CreateView(0, 1, RUNTIME_CLASS(CUserRightPanView), CSize(100, 100), NULL);
if(!bRet)
...{
TRACE0("Failed to create right user pan!");
return FALSE;
}
m_wndUserSplitter.RecalcLayout();
return 0;
}
3.添加OnSize()响应,显示SplitterWnd:
void CUserManagerSplitterView::OnSize(UINT nType, int cx, int cy)
...{
CView::OnSize(nType, cx, cy);
if(this->m_hWnd != NULL)
...{
CRect rect;
GetClientRect(&rect);
if(m_wndUserSplitter.GetSafeHwnd() != NULL)
...{
m_wndUserSplitter.MoveWindow(&rect);
}
}
}
3.如果要Left Pan 与 Right Pan 可相互通信,参考以下代码:
//在CUserLeftPanView 中定义: CUserRightPanView *m_pUserRightPanView;
//然后在OnCreate后面添加:
CUserLeftPanView* pUserLeftPanView = (CUserLeftPanView*)m_wndSplitter.GetPane(0, 0);
pUserLeftPanView->m_pRightPanView= (CUserRightPanView*)m_wndSplitter.GetPane(0, 1);
4.分割Frame方法一样;
2.分割函数:
int CUserManagerSplitterView::OnCreate(LPCREATESTRUCT lpCreateStruct)
...{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
if(!m_wndUserSplitter.CreateStatic(this, 1, 2))
...{
return FALSE;
}
BOOL bRet = m_wndUserSplitter.CreateView(0, 0, RUNTIME_CLASS(CUserLeftPanView), CSize(200, 100), NULL);
if(!bRet)
...{
TRACE0("Failed to create left user pan!");
return FALSE;
}
bRet = m_wndUserSplitter.CreateView(0, 1, RUNTIME_CLASS(CUserRightPanView), CSize(100, 100), NULL);
if(!bRet)
...{
TRACE0("Failed to create right user pan!");
return FALSE;
}
m_wndUserSplitter.RecalcLayout();
return 0;
}
3.添加OnSize()响应,显示SplitterWnd:
void CUserManagerSplitterView::OnSize(UINT nType, int cx, int cy)
...{
CView::OnSize(nType, cx, cy);
if(this->m_hWnd != NULL)
...{
CRect rect;
GetClientRect(&rect);
if(m_wndUserSplitter.GetSafeHwnd() != NULL)
...{
m_wndUserSplitter.MoveWindow(&rect);
}
}
}
3.如果要Left Pan 与 Right Pan 可相互通信,参考以下代码:
//在CUserLeftPanView 中定义: CUserRightPanView *m_pUserRightPanView;
//然后在OnCreate后面添加:
CUserLeftPanView* pUserLeftPanView = (CUserLeftPanView*)m_wndSplitter.GetPane(0, 0);
pUserLeftPanView->m_pRightPanView= (CUserRightPanView*)m_wndSplitter.GetPane(0, 1);
4.分割Frame方法一样;
相关文章推荐
- 关于用CSplitterWnd分割View的一点总结
- 用CSplitterWnd分割CFormView窗口
- 使用CSplitterWnd分割Frame和View
- 使用CSplitterWnd分割View窗口
- 在View视图类中使用CSplitterWnd来拆分视图窗口(不在CMainFrame类的虚函数OnCreateClient中拆分视图框架窗口)
- 使用CSplitterWnd 分割窗体
- 使用CSplitterWnd类进行窗口的任意分割
- 使用CSplitterWnd类分割窗体,拆分窗体
- 用CSplitterWnd类分割窗体
- 在View视图类中使用CSplitterWnd来拆分视图窗口(不在CMainFrame类的虚函数OnCreateClient中拆分视图框架窗口)
- CSplitterWnd分割的两个视图之间的消息传递收藏
- 关于自定义分割窗口类(派生于CSplitterWnd)遇到的问题
- VC++6.0使用CSplitterWnd类分割窗体,拆分窗体
- MFC的窗口分割的设计与实现以及CSplitterWnd 类分析
- 使用CSplitterWnd分割窗口
- 关于CSplitterWnd,移动窗口导致客户区反复消失重现。
- 使用2个CSplitterWnd分割成3个窗口
- 关于CSplitterWnd拆分窗口的隐藏与显示问题
- 使用CSplitterWnd分割窗口必须注意的问题!!!
- MFC下分割CSplitterWnd窗口等比例缩放