一直关注中,请哪位帮我回答?

解决方案 »

  1.   

    先得到基于CFormView的窗体的tree control控件的指针,用InsertItem就OK了.
    如pTestView->m_Tree.InsertItem("test"0, 0, pTestView->m_Tree.GetRootItem(),TVI_FIRST);
      

  2.   

    麻烦楼上的给我写一下得到CFormView的tree的控件指针
      

  3.   

    因为tree control是一个树型控件,在什么地方捕获它的指针呢.还是用以控件变量的形式访问
      

  4.   

    在App中定义基于 CFormView类的指针pTestView,然后在该类中加入((CMyApp *)AfxGetApp())->m_pTestView=this;在Dialog类中就可通过(((CMyApp *)AfxGetApp())->m_pTestView)->m_Tree得到treectrl类,再insertitem即可.
      

  5.   

    也可以你先定义一个基于 CFormView类的指针pTestView,然后你这个类的构造函数中把this指针丢出来:
    class CTestView *pTestView;
    class CTestView:public CFormView
    {public:
    CTreeCtrl m_Tree;//用ClassWizard加的Control型变量.
    ...
    }
    CTestView::CTestView()
    {
       pTestView = this;
    ....
    }......
    extern class CTestView *pTestView;
    ......pTestView->m_Tree.InsertItem("test"0, 0, pTestView->m_Tree.GetRootItem(),TVI_FIRST);
      

  6.   

    void CNewGradeDlg::OnOK() 
    {
        CString strGrade;
    CEdit * pdtGrade = (CEdit*)GetDlgItem(IDC_EDTGRADE);
        pdtGrade->GetWindowText(strGrade);
    pTestView->m_tree.InsertItem(strGrade,0, 0, pTestView->m_Tree.GetRootItem(),TVI_FIRST);//执行到这句错误
    CDialog::OnOK();
    }
    错误信息如下:
    NewGradeDlg.cpp(49) : error C2039: 'm_Tree' : is not a member of 'CLeftPaneView'
        Teachmanager\leftpaneview.h(19) : see declaration of 'CLeftPaneView'
        TeachManager\NewGradeDlg.cpp(49) : error C2228: left of '.GetRootItem' must have class/struct/union type
    Error executing cl.exe.
      

  7.   

    我倒...m_Tree应该是CLeftPaneView类中的CTreeCtrl的Control型变量,你自己的定义啊,照搬怎么行....
      

  8.   

    这是个控件型变量,我在ClassWizard里已经定义过了啊。你的意思我不理解啊。
      

  9.   

    pTestView->GetDlgItem(IDC_TREE2)->InsertItem(strGrade,0, 0, pTestView->m_Tree.GetRootItem(),TVI_FIRST);
    用这个试试,把IDC_TREE2改成你自己的ID
      

  10.   

    还是不行啊?
    pTestView->GetDlgItem(IDC_TREEINFO)->InsertItem(strGrade,0, 0, pTestView->m_Tree.GetRootItem(),TVI_FIRST);
    错误代码:
    error C2039: 'InsertItem' : is not a member of 'CWnd'
            c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(1899) : see declaration of 'CWnd'
    D:\TeachManager\NewGradeDlg.cpp(49) : error C2039: 'm_Tree' : is not a member of 'CLeftPaneView'
    d:\teachmanager\leftpaneview.h(19) : see declaration of 'CLeftPaneView'
    D:\TeachManager\NewGradeDlg.cpp(49) : error C2228: left of '.GetRootItem' must have class/struct/union type
      

  11.   

    CTreeCtrl * pTreeCtrl = (CTreeCtrl *)(pTestView->GetDlgItem(IDC_TREEINFO);
    pTreeCtrl->InsertItem(strGrade,0, 0, pTreeCtrl->GetRootItem(),TVI_FIRST);
      

  12.   

    NewGradeDlg.obj : error LNK2005: "class CLeftPaneView *  pTestView" (?pTestView@@3PAVCLeftPaneView@@A) already defined in LeftPaneView.obj
    改成你这样的,出现这个错误。
      

  13.   

    I服了U.pTestView你重定义了,在一个地方定义,一个地方声明就行了.
      

  14.   

    我是按照你的意思写上去的,真是奇怪,
    也可以你先定义一个基于 CFormView类的指针pTestView,然后你这个类的构造函数中把this指针丢出来:
    class CTestView *pTestView;
    class CTestView:public CFormView
    {public:
    CTreeCtrl m_Tree;//用ClassWizard加的Control型变量.
    ...
    }
    CTestView::CTestView()
    {
       pTestView = this;
    ....
    }......
    extern class CTestView *pTestView;
    这样有错吗?
      

  15.   

    这样应该没错,你查找一下pTestView,看看在哪还定义了.
      

  16.   

    要不你告诉我EMAIL地址,我发过来,其他地方没有定义了。
      

  17.   

    你留个EMAIL地址好吗?麻烦楼上的了?
      

  18.   

    任何变量的定义应该在.CPP文件中(或.C文件).把
    class CLeftPaneView * pTestView;
    从LeftPaneView.h移动到LeftPaneView.cpp就行了.
    .h文件是用来声明的,能用来定义.