SDI切分窗口
1.1在VC6.0的classview里面使用appwizard添加新类CMyTreeView,继承自CTreeView
1 void CMyTreeView1::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 2 { 3 CTreeCtrl& m_tree = GetTreeCtrl();//设置树的样式 4 m_tree.ModifyStyle(0,TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES); 5 m_tree.InsertItem(_T("中国"), 0, 1, TVI_ROOT, TVI_LAST); 6 }
以此类推,添加listview formview editview
Maiframe中进行切分,
1 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext *pContext) 2 { 3 CRect rect; 4 GetClientRect(&rect); 5 //切分 6 if (!m_wndSplitFirst.CreateStatic(this, 1, 2))//静态切分, 一行2列 7 return FALSE; 8 //切分1后的第一个视图 if (!m_wndSplitFirst.CreateView(0, 0, RUNTIME_CLASS(CMyTreeView1), CSize(rect.Width()/5, rect.Height()), pContext) ) 9 { 10 m_wndSplitFirst.DestroyWindow(); 11 return FALSE; 12 } 13 //第二次切分 14 if(!m_wndSplitSecon.CreateStatic(&m_wndSplitFirst,2,1,WS_CHILD|WS_VISIBLE, _wndSplitFirst.IdFromRowCol(0, 1))) 15 { 16 return FALSE; 17 } 18 if (!m_wndSplitSecon.CreateView(1, 0, RUNTIME_CLASS(CMyListView), CSize(rect.Width()/5*4, rect.Height()/2), pContext) ) 19 { 20 m_wndSplitSecon.DestroyWindow(); 21 return FALSE; 22 } 23
m_wndSplitSecon.SetRowInfo(0, rect.Height()/2, 0);
24 //第三次切分 25 if(!m_wndSplitThird.CreateStatic(&m_wndSplitSecon, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitSecon.IdFromRowCol(0, 0))) 26 { 27 return FALSE; 28 } 29 if (!m_wndSplitThird.CreateView(0, 0, RUNTIME_CLASS(CMyFormView), CSize(rect.Width()/5*2, rect.Height()/2), pContext) ) 30 { 31 m_wndSplitSecon.DestroyWindow(); 32 return FALSE; 33 } 34 if (!m_wndSplitThird.CreateView(0, 1, RUNTIME_CLASS(CMyEditView), CSize(rect.Width()/5*2, rect.Height()/2), pContext) ) 35 { 36 m_wndSplitSecon.DestroyWindow(); 37 return FALSE; 38 } 39 40 return TRUE; 41 }