1。首先定义一个全局变量HANDLE m_hHandle;
2。在你左边的视的构造函数中写上 m_hHandle = this;
3。在你要调用的类中写上 extern m_hHandle;
4。在你要调用的地方写上(yourleftview * )m_hYourLeftView = (yourleftview *) m_hHandle;

解决方案 »

  1.   

    CWnd *pwnd;
    pwnd = this->GetActiveView()
      

  2.   

    是不是要通过AfxGetApp()函数来指啊,按照这个意思,如何实现?GetActivePane要用m_wndSplitter对象来访问,可m_wndSplitter是保护型成员,不能违反访问规则吧!
      

  3.   

    yaly(),你好!
    全局变量在哪里声明好?
    P.S.
    你的方法应该可行,但是我们一直不主张使用全局变量,有没有其他更好的办法呢?不过,俺是新手,还是要请教请教,试试这种做法!谢谢你!
      

  4.   

    Cwnd * CSplitterWnd::GetPane(int row,int col)
      

  5.   

    如果是用MFC这个方法倒可以,在应用程序类中定义指向各个需要的视
    的指针,要定义成全局的,App类外,
    然后在各个视的初始化函数中赋给值,到用的时候,直接用就可以了
      

  6.   

    skywolfY(莫愁) 能不能再说详细一点?你指的是哪种方法?更清楚地给我解释一下好么?
      

  7.   

    其实要看你在什么地方操作啊,如果你老在MainFrame那你定义全局变量,如果你是对当前选中窗体操作,那我建议你就用GetActiveView
      

  8.   

    过去做毕业设计时,用到多文档多视图,在App应用程类中,定义全局的各个视的指针,然后在各个视初始化时赋初值,用时,通过应用程类来取得
    举个例子:
    建立多文档视图,应用程序De
    在De.cpp中,找到BEGIN_MESSAGE_MAP(CDeApp, CWinApp)
    在上边写CDeView * pView;
    然后在DeView.cpp中找到IMPLEMENT_DYNCREATE(CDeView, CFormView)
    在上边写extern CDeView *pView;然后
    CDeView::CDeView()
    : CFormView(CDeView::IDD)
    {
    //{{AFX_DATA_INIT(CDeView)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
    // TODO: add construction code here
    pView=this;加入这一句
    }
    可以了,以后在这里就可以直接用pView当做这个视的代用名称了试一下,加个Button1,定义m_aa,control
    pView->m_aa.EnableWindow(false);
    呵呵,好多年不用了,记得不想楚了。好在还想了起来
      

  9.   

    谢谢各位!
    我已经把问题解决了
    采用yaly()和skywolfY(莫愁) 的方法,将视的指针传到了正确的位置。
    从这个问题中,我学会了怎么使用全局变量,在哪儿定义变量,在哪儿声明(使用extern)而且找到了一种在类之间传数据的方法,真的很感激各位的热情帮助!!