问题起源:我需要在ChildFrame创建过程中,把随之创建的View指针保存下来。翻阅《深入浅出MFC》一书,查阅到其基类的基类CFrameWnd类中有个成员函数CreateView()。这个函数可以返回创建的View指针。因为这个函数非virtual函数,于是我想在自己的类中重写该函数。编码->编译->设置断点->运行,结果系统完全无视我自己写的函数。请教这是为什么呢?

解决方案 »

  1.   

    直接GetActiveView( )就可以了,何必搞CreateView()
      

  2.   

    POSITION pos = GetFirstViewPosition()
    while ( pos != NULL ) {
        CView *pview = GetNextView( pos );
        // here do something with pview
    }这样可以得到任何view,有必要自己保存CView的指针吗?
    你需要把CView转换成合适的View
      

  3.   

    onestation,我问这个问题是有其它原因的。
    新创建的ChildFrame是由程序别的地方的框架类触发生成的。GetActiveView()得到的将会是原始的那个Frame里面的View。有这么一句话,最前面的Frame不一定是Active的Frame。
      

  4.   

    save your view pointers in the document object.
    http://topic.csdn.net/t/20040726/19/3212087.html
      

  5.   

    谢谢jiangsheng(蒋晟.Net[MVP]),问题基本上解决了。揭帖~