在自动生成的VIEW类中,我是在MainFrame通过这样获取的,成功!
m_pImageView = (CShowImageView*)this->GetActiveView(); 
m_pImageView->GetPathDir(pathdir);
但是以同样方法获取另一个却不行!!!
怎么获取啊?
说详细点谢谢!

解决方案 »

  1.   

    问题就出在,你的m_pImageView = (CShowImageView*)this->GetActiveView(); 这个代码上,如果你的多视图切分窗口,那么不同时刻活动的视图是不同的,所以GetActiveView()只能得到当前正在活动的视图。
    这个最好是定义全局变量,定义一各个视图的指针,初始值赋值为NULL,在各个视图类的构造函数里对其赋值,如g_pImageView = this;这来在接下来的程序中直接用这个指针就可以访问视图了。
      

  2.   

    弱弱的问一下,全局变量在哪里定义,我定义了一头文件来放全局变量的定义,但是问题好多!
    --------------------Configuration: ShowImage - Win32 Debug--------------------
    Compiling...
    MainFrm.cpp
    Linking...
    ShowImageView.obj : error LNK2005: "class CMyView2 * g_pMyView2" (?g_pMyView2@@3PAVCMyView2@@A) already defined in MainFrm.obj
    ShowImageView.obj : error LNK2005: "class CShowImageView * g_pShowImageView" (?g_pShowImageView@@3PAVCShowImageView@@A) already defined in MainFrm.obj
    MyView2.obj : error LNK2005: "class CMyView2 * g_pMyView2" (?g_pMyView2@@3PAVCMyView2@@A) already defined in MainFrm.obj
    MyView2.obj : error LNK2005: "class CShowImageView * g_pShowImageView" (?g_pShowImageView@@3PAVCShowImageView@@A) already defined in MainFrm.obj
    ShowImageView.obj : error LNK2005: "class CMyView2 * g_pMyView2" (?g_pMyView2@@3PAVCMyView2@@A) already defined in MainFrm.obj
    ShowImageView.obj : error LNK2005: "class CShowImageView * g_pShowImageView" (?g_pShowImageView@@3PAVCShowImageView@@A) already defined in MainFrm.obj
    MyView2.obj : error LNK2005: "class CMyView2 * g_pMyView2" (?g_pMyView2@@3PAVCMyView2@@A) already defined in MainFrm.obj
    MyView2.obj : error LNK2005: "class CShowImageView * g_pShowImageView" (?g_pShowImageView@@3PAVCShowImageView@@A) already defined in MainFrm.obj
    Debug/ShowImage.exe : fatal error LNK1169: one or more multiply defined symbols found
    Error executing link.exe.ShowImage.exe - 9 error(s), 0 warning(s)要在哪定义全局变量啊!!!
      

  3.   

    GetActiveView返回的是当前活动视图的指针,如果要取指定的视图,要通过CSplitterWnd的GetPane函数。另外,要访问的成员必须是public的。