创建静态拆分窗口的方法:
1. 在父框架中嵌入一个CSplitterWnd成员变量。
2. 重载父框架的CFrameWnd::OnCreateClient成员函数。
3. 从重载的OnCreateClient函数中调用类CSplitterWnd的Create或CreateStatic成员函数,并调用CreateView来创建视图。
其中重载CFrameWnd::OnCreateClient的代码如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
if(m_wndSplitter1.CreateStatic(this, 1, 2, (WS_CHILD | WS_VISIBLE | WS_BORDER)) == NULL)
{
return FALSE;
}
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CerewrView),CSize(200,100), pContext);
m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CMainView),CSize(100,100), pContext);
return CFrameWndEx::OnCreateClient(lpcs, pContext);
}
创建的分隔窗口就会间歇性消失,解决方法就是,注释掉return CFrameWndEx::OnCreateClient(lpcs, pContext);,直接返回TRUE。