我在框架窗口客户区添加了一个CSplitterWnd,1行两列,左边用CTreeView,右边ClistView
代码:BOOL CMyFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if (!m_wndSplitterWnd.CreateStatic(this, 1, 2))
{
return FALSE;
}

m_wndSplitterWnd.CreateView(0, 0, RUNTIME_CLASS(CTreeView), CSize(200, 400), pContext);
m_wndSplitterWnd.CreateView(0, 1, RUNTIME_CLASS(CListView), CSize(400, 400), pContext);
m_imageList.Create(32, 32, ILC_COLOR8, 5, 0);

m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));


m_imageList.SetBkColor(RGB(255, 255, 255));
DWORD style = m_wndTreeView.GetStyle();
style |= TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_LINESATROOT;
// m_wndTreeView.SetExtendedStyle(style);
m_wndTreeView.GetTreeCtrl().SetImageList(&m_imageList, TVSIL_NORMAL);  m_wndTreeView.GetTreeCtrl().InsertItem("a", 0, 0, TVI_ROOT, TVI_SORT);
  m_wndTreeView.GetTreeCtrl().InsertItem("a", 1, 1, TVI_ROOT, TVI_SORT);
  m_wndTreeView.GetTreeCtrl().InsertItem("a", 2, 2, TVI_ROOT, TVI_SORT);
  m_wndTreeView.GetTreeCtrl().InsertItem("a", 3, 3, TVI_ROOT, TVI_SORT);
  m_wndTreeView.GetTreeCtrl().InsertItem("a", 4, 4, TVI_ROOT, TVI_SORT); return TRUE;

}m_wndTreeView.GetTreeCtrl().SetImageList(&m_imageList, TVSIL_NORMAL);这一句运行时错误

解决方案 »

  1.   

    还有,那两个视图都是作为CMyFrame的成员,怎么设置CTreeView的样式啊,整个工程是手工编写,只有两个类,CMyApp和CMyFrame求大神教我!
      

  2.   

    标准的‘explorer’风格 工程,
    创建工程时 选 ‘explorer’就可以了,系统给你 做好了。
    一定要自己搞,那么
    m_wndSplitterWnd.CreateView(0, 0, RUNTIME_CLASS(CTreeView), CSize(200, 400), pContext);
    m_wndSplitterWnd.CreateView(0, 1, RUNTIME_CLASS(CListView), CSize(400, 400), pContext);
    分别派生成:
    CLeftView (CTreeView)
    CYourView (CListView)
      

  3.   

    SetImageList那句为什么出错?运行时错误
      

  4.   

    例子:
    // images 
    ImagelistList.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); 
    //
    Imagelist.Create(16,16,ILC_COLOR8 | ILC_MASK,6,4); 
    for (nID=IDB_DIR;nID<=IDB_802D;nID++) //0-9  
    {
    bitmap.LoadBitmap(nID);
    Imagelist.Add(&bitmap,(COLORREF)0xFFFFFF);
    bitmap.DeleteObject();
    }
    用的是:
    bitmap.LoadBitmap(nID);
    Icon 没用过