我想在基于单文档的MFC应用程序中加入树形控件:即视图左边显示树形控件右边显示CListView,请教如何实现!!!敬请详细解释一下!

解决方案 »

  1.   

    if(m_wndSplitter.CreateStatic(this,1,2))
    {
    CRect rect;
    GetClientRect(&rect);
    CSize sizeTree=rect.Size(); sizeTree.cx=rect.Width()/4; if(m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CMyTreeView),sizeTree,pContext))
    {
    if(m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMyListView),CSize(0,0),pContext))
    {
    return TRUE;
    }
    }
    }
      

  2.   

    同意楼上
    然后对treeview可以看看vc知识库里面的文章
    www.vckbase.com
      

  3.   

    1. 分割窗口:先加入成员变量CSplitterWnd m_wndSplitter;
                 再如下重载OnCreateClient()
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
    {
    // TODO: Add your specialized code here and/or call the base class
    BOOL bCreateSplit = m_wndSplitter.CreateStatic(this,1,2); m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CmyTreeView),CSize(180,100),pContext);
    m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMyLVView),CSize(100,100),pContext);
    return bCreateSplit;
    }
    2。treeView中在create()中改变树的风格
             dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
       OnInitialUpdate()中初始化:
       void CmyTreeView::OnInitialUpdate() 
    {
    CTreeView::OnInitialUpdate(); CTreeCtrl& pCtrl =  GetTreeCtrl(); 
             TVINSERTSTRUCT tvInsert;
    tvInsert.hParent = NULL;
    tvInsert.hInsertAfter = NULL;
    tvInsert.item.mask = TVIF_TEXT;
    tvInsert.item.pszText = _T("图书馆"); HTREEITEM hCountry = pCtrl.InsertItem(&tvInsert);
             HTREEITEM hPA = pCtrl.InsertItem(TVIF_TEXT,
       _T("计算机类"), 0, 0, 0, 0, 0, hCountry, NULL)    
             HTREEITEM hWA = pCtrl.InsertItem(_T("管理类"),
       0, 0, hCountry, hPA);
    HTREEITEM hEA = pCtrl.InsertItem(_T("电子类"),
       0, 0, hCountry, hWA);
    pCtrl.InsertItem(_T("Windows 程序设计"), hPA, TVI_SORT);
    pCtrl.InsertItem(_T("vc++编程指南"), hPA, TVI_SORT);
    pCtrl.InsertItem(_T("JAVA"), hPA, TVI_SORT); pCtrl.InsertItem(_T("php 管理"), hWA, TVI_SORT);
    pCtrl.InsertItem(_T("Kalaloch"), hWA, TVI_SORT);
    pCtrl.InsertItem(_T("Yakima"), hWA, TVI_SORT);
    }