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

假如分割的视图只有一个视图类,把视图分割成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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值