RUNTIME_CLASS的形式一般这样:RUNTIME_CLASS(CxxxView),但能不能将CxxxView改为指针。

解决方案 »

  1.   

    CxxxView* pView = (CxxxView*)RUNTIME_CLASS(CxxxView)->CreateObject();
      

  2.   

    楼上朋友可否详解,如果我进行了如下申明:
    CxxxView* pView=new CxxxView();
    在RUNTIME_CLASS()的参数如何才能引用那个pView呢?
      

  3.   

    RUNTIME_CLASS的参数肯定是类名啊
    不可能是指针啊
    你具体想实现什么需求呢
      

  4.   

    CMDIFrameWnd *pFrame = 
                 (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
    CMDIChildWnd *pChild = 
                 (CMDIChildWnd *) pFrame->GetActiveFrame();
    CView *pView = (View*)pChild->GetActiveView();
    CxxxView* pMyView = NULL;
    if (pView->IsKindOf(RUNTIME_CLASS(CxxxView))
    {
      pMyView = (CxxxView*)pView;
    }这种方法一般用于多文档模板,如果你不是多文档模板,要明确view的父字关系,才能得到.想用RUNTIME_CLASS一般无法直接得到view指针.
    一般在创建非文档模板的VIEW时,要在适当的位置保存这个VIEW指针,以方便调用.
      

  5.   

    我有一个CxxxView类,但要应用于分割窗口中不同的面板,在不同的面板根据不同的需要加载一些信息。
      

  6.   

    你的意思是说类完全相同
    只是想显示的信息会有所不同?
    直接通过RUNTIME_CLASS多次绑定不可以么
      

  7.   

    如左视图类想得到右视图的类(CxxxView)对象指针: CMyFrame* pFrame = (CMyFrame*)GetParent()->GetParent();
    if (pFrame->IsKindOf(RUNTIME_CLASS(CMyFrame)))
    {
    CxxxView* pView = (CxxxView*)m_wndSplitter.GetPane(0, 1);
    }