单文档视图分割和获取各个视图指针;
假如分割的视图只有一个视图类,把视图分割成4个视图;
在单文档的CMainFrame类定义视图分割成员变量
CSplitterWnd m_splitter;//分割工具
在函数BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)分割视图
把视图分割成2行,上面一行又分为左右两列
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
02.
{
03.
// TODO: 在此添加专用代码和/或调用基类
04.m_wndSplitter1.CreateStatic(
this
, 2, 1);//表示首先分割为2行1列
//CFSView是你要现实的视图类,继承view,如果是对话框类的话,这个类就继承于CFormView,把对话框的属性Border设为NONE , Systly设为child;07.
m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0,0));//表示把第一行的分割为1行2列。
08.
m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CFSView), CSize(100, 100), pContext);//把第一行分割成列
09.
m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CFSView), CSize(100, 100), pContext);
10.
11.
m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CFSView), CSize(100, 100), pContext);//表示接着把第二行分割出来;
12.
return TRUE;
12.
}
*************************************************************
如果是把设为2行一列,把第二行的在设为一行两列
******************************************************
m_wndSplitter1.CreateStatic(
this
, 2, 1);//表示首先分割为2行1列
//CFSView是你要现实的视图类,继承view,如果是对话框类的话,这个类就继承于CFormView,把对话框的属性Border设为NONE , Systly设为child;07.
m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(1,0));//表示把第二行的分割为1行2列。
08.
m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CFSView), CSize(100, 100), pContext);//把第一行分割成列
09.
m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CFSView), CSize(100, 100), pContext);
*********************************************************************
获取各个分割视图的对象指针
*********************************************************************
根据分割的顺序获取,
1获取第零个,
POSITION pos = GetFirstViewPosition();
CMapHeadFileView *pPMapFileView ;
if ( pos )
{
pPMapFileView = ( CMapHeadFileView * )GetNextView( pos );
}
return pPMapFileView;
POSITION pos = GetFirstViewPosition();
CMapHeadFileView *pPMapFileView ;
if ( pos )
{
GetNextView( pos );
pPMapFileView = ( CMapHeadFileView * )GetNextView( pos );获取第1个;
}
;获取第2个;
POSITION pos = GetFirstViewPosition();
CMapHeadFileView *pPMapFileView ;
if ( pos )
{
GetNextView( pos );
GetNextView( pos );
pPMapFileView = ( CMapHeadFileView * )GetNextView( pos );获取第二个;
}