我做了个程序,采用Window explorer风格的,也是就是窗口左边部分是个CTreeView, 右边部分是个CListView.
在app类的InitInstance()中,有
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame),       
RUNTIME_CLASS(CMyTreeView));          很明显,通过document template 把Treeview和document关联起来了, 可以listview是如何和document关联在一起的呢?
我查看了一下MFC的代码,也没找到,
请明白人给讲解一下,谢谢了。   

解决方案 »

  1.   

    很明显,这是一个document,对应两个View(一个treeview,一个listview),但我在代码中只找到了treeviw和document关联的部分,没找到listview 跟document关联的部分, 但listview的GetDocument(),Onupdate(等方法却好用,说明两者已经关联起来了。
      

  2.   

    listview其实就是 CListCtrl,不一定要CSingleDocTemplate关联起来才可用,我们经常在一般的 CFormView 上直接使用 CListCtrl,不要CSingleDocTemplate关联。
      

  3.   

    我这个程序使用的是mfc的Windows explorer 风格生成的,没有CFormView,  点击左边的treeview后,
    发出GetDocument()->UpdateAllViews(),右边的listview的OnUpdate()方法就会响应,很明显两者是关联在一起的,但我找不到相应的代码,包括mfc源码上也没找到。
      

  4.   

    你找到listview的声明语句、创建语句没有?
    复制一些代码上来我们看看。可能listview是treeview的子窗口,所以
    点击左边的treeview后,
    发出GetDocument()->UpdateAllViews(),右边的listview的OnUpdate()方法就会响应
      

  5.   

    不是子窗口,是平行窗口, listview  是向导创建的,如果是我自己创建的就好说了, 我现在就是搞不明白向导究竟如何让listview和document 关联起来的。找不到实现代码。