单文档中我是这样操作的,现在视类中打开对话框:CMyView::OnOpen()
{
  CMyDlg dlg(this);
  dlg.DoModal();
}
然后在对话框类中定义一个CWnd* m_pParnt指针,在构造函数中有:CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CMyDlg::IDD, pParent)
{
    m_pParent=pParent;
}
可是我发现通过这样的方法m_pParent根本取不到视类中的变量,请问这是怎么回事?

解决方案 »

  1.   

    CMyView* m_pParent = (CMyView*) pParent;
      

  2.   

    我调试时发现,确实m_pParent已经得到了视类的指针,可是就是引用不到视类我自己定义的变量。搞不清楚这是为什么。
    我换了一种方法,在对话框我的函数中如下操作:
    {
       CMyView* pView=(CMyView*)this->GetParnt();
       ....
    }
    结果发现pView指向的是CMainFrame,并不是CMyView,这又是怎么回事?又换了一种方法,我想这样操作,xxView *pView = (xxView *)(AfxGetMainWnd()->GetActiveView());按照这样操作,结果AfxGetMainWnd调用不到GetActiveView(),这又是怎么回事?哪位给再指点一下!
      

  3.   

    我按一楼的操作试了下,可以实现了,只是下面的问题如何解决呢?
    在对话框我的函数中如下操作: 

          CMyView*   pView=(CMyView*)this- >GetParnt(); 
          .... 

    结果发现pView指向的是CMainFrame,并不是CMyView,这又是怎么回事? 又换了一种方法,我想这样操作,xxView   *pView   =   (xxView   *)(AfxGetMainWnd()- >GetActiveView());按照这样操作,结果AfxGetMainWnd调用不到GetActiveView(),哪位给再指点一下!