您的位置:首页 > 其它

窗口分割 CSplitterWnd

2012-02-23 15:54 330 查看
1、CMainFrame增加成员变量:

CSplitterWnd m_wndSplitter;

CSplitterWnd m_wndSplitter1;
2、映射CMainFrame::OnCreateClient函数:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)

{

// 创建一个静态分栏窗口,分为二行一列

if (m_wndSplitter1.CreateStatic(this, 2, 1) == NULL)

{

return FALSE;

}

// 第一行分割为两列

if (m_wndSplitter.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0, 0)) == NULL)

{

return FALSE;

}

// 设置第一行View

m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CToolBarTestView), CSize(200,200), pContext);

m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CToolBarTestView), CSize(600,200), pContext);

// 设置第二行View

m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CToolBarTestView), CSize(20,20), pContext);

// 设置第一行高度

CRect rect;

GetClientRect(&rect);

m_wndSplitter1.SetRowInfo(0, rect.Height() * 2 / 3, 0);

return TRUE;

}

3、获取指定的View实例:

CToolBarTestView* pTestView = (CToolBarTestView*)this->m_wndSplitter.GetPane(0, 1); // 第一行第二列

if (pTestView)

{

return;

}

4、m_wndSplitter.CreateView可创建自定义的各种View,例如:CTreeView、CListView、CRichEditView等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: