MFC分割窗口的实现
新建一个单文档的MFC工程。
新建两个对话框,用于分割窗口
对话框的Style属性改为Child,
Border属性改为None,
最开始没有改这个,程序运行的时候报错了。
将两个对话框生成从CFormView派生的类。
在CMainFrame中添加两个成员变量,类型为CSplitterWnd,如下所示
CSplitterWnd m_splitterWnd1;// IDD_DLG_1
CSplitterWnd m_splitterWnd2;// IDD_DLG_2
添加虚函数virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
程序代码修改部分如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: 在此添加专用代码和/或调用基类 //return CFrameWnd::OnCreateClient(lpcs, pContext); //拆成一行两列 m_spliter.CreateStatic(this,1,2); //左侧和右侧具体的显示内容 m_spliter.CreateView(0,0,RUNTIME_CLASS(CDialog1View),CSize(300,500),pContext); m_spliter.CreateView(0,1,RUNTIME_CLASS(CDisplayView),CSize(600,500),pContext); return TRUE; }