单文档视图分割和获取各个视图指针;

假如分割的视图只有一个视图类,把视图分割成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;
06.m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(CFSView), CSize(100, 100), pContext);//表示接着把第二行分割出来
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 );获取第二个;
}

原文地址:https://www.cnblogs.com/chenzuoyou/p/3286073.html