使用MFC创建一个分隔的窗口的方法是使用CSplitterWnd类,调用CSpitterWnd::CreateStatic()函数创建分隔窗口,通过CSpitterWnd::CreateView()为分隔的每一个窗口制定一个View类的视图。
本例创建一个左1右2的分隔窗口程序,具体的步骤如下:
1、新建一个单文档应用程序SpitterWndDemo。
2、在“MainFrm.h”(主框窗口类的头文件)中加入:
CSplitterWnd m_splitterWnd1;
CSplitterWnd m_splitterWnd2;
3、新建两个继承自CView类的自定义类如CLeftView和CRootView。
4、在CMainFrame类里重写一个虚拟函数BOOL CMainFrame::OnCreateClient()
if (!m_splitterWnd1.CreateStatic(this, 1, 2))
return FALSE;
if (!m_splitterWnd1.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 100), pContext))
{
m_splitterWnd1.DestroyWindow();
return FALSE;
}
if (!m_splitterWnd2.CreateStatic(&m_splitterWnd1, 2, 1,WS_CHILD|WS_VISIBLE,m_splitterWnd1.IdFromRowCol(0,1)))
return FALSE;
if (!m_splitterWnd2.CreateView(0, 0, RUNTIME_CLASS(CSpilterWndDemo3View), CSize(100, 300), pContext) ||
!m_splitterWnd2.CreateView(1, 0, RUNTIME_CLASS(CRootView), CSize(100, 100), pContext))
{
m_splitterWnd2.DestroyWindow();
return FALSE;
}
//return CFrameWnd::OnCreateClient(lpcs, pContext);
return TRUE;
注意要将自带的return CFrameWnd::OnCreateClient(lpcs, pContext);注释起来,后面加上return TRUE;
5、编译运行后