添加CSplitterWnd变量 CSplitterWnd m_wndSplitter;
重载虚函数 CMainFrame::OnCreateClient();
在函数中实现窗口分割,代码类似以下:
m_wndSplitter.CreateStatic(this, 1, 2);//窗口分割为1行2列
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 0), pContext);//
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(0, 0), pContext);//
最后,最重要最容易出错的一步:
函数的返回值需改为 return TRUE;
不能直接返回基类的 OnCreateClient() 函数!即代码改为如下:
return TRUE;// CFrameWnd::OnCreateClient(lpcs, pContext);
示例完整代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
m_wndSplitter.CreateStatic(this, 1, 2);
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(150,10), pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100,100), pContext);
//return CFrameWnd::OnCreateClient(lpcs, pContext); 该语句改为下面语句
return TRUE;
}
使用CSplitterWnd分割窗口必须注意的问题!!!
最新推荐文章于 2020-07-30 17:58:34 发布