如何在文档中得到一个视的对象 我是说在文档中 可以当全局的对象 而不是只在文档的一个函数中用的对象 (即是说可以在文档的构造函数中创建这个视的对象 然后再文档的任何地方都可以很简便的应用 就像一般的对象一样 )可以吗 如果的话 希望能够给出实现的代码 先送上一个初学者的感谢

解决方案 »

  1.   

    那就声明一个全局对象吧,在VIEW生成时,把指针指向它,就可以了,用的时候if它不是NULL就可以了,虽然这样不付合OOP思想,但要的话也是可以的,其它的方法,我加去试一下,下次在告诉你.如果条件是非要在文档的构造函数中创建它的话,可能有一点麻烦,我好久不动MFC了,回去看看吧.如果是视先生成的话,就可以在文档中声明一个变量,在文档的构造函数中给它赋值,如果是视后于文档对象生成的话,就不可以了,只能用全局变量了
      

  2.   

    你这样的编程好像有违文档-视结构的本意,文档变了就UpdateAllViews,显示都用View类处理。另外,应该是先生成文档对象,再生成视,在文档的构造函数中创建它是不可能的
      

  3.   

    那我如何将视的数据传递给文档呢 比如我要得到视的大小 在文档中又不能够用GetClientRect() 大家有办法吗
      

  4.   

    在view中GetDocument(),不就可以将视的数据传递给文档了吗?
      

  5.   

    不大明白你的意思。不过我想你可以通过得到当前视图,或者文档的指针来访问他们的成员函数和数据//当前视图:
    CFrameWnd* pMainFrame=(CFrameWnd*)AfxGetMainWnd();
    CMyView* pView=(CMyView*)pMainFrame->GetActiveView();
    //当前文档
    CFrameWnd* pMainFrame=(CFrameWnd*)AfxGetMainWnd();
    CMyDoc* pDoc=(CMyDoc*)pMainFrame->GetActiveDocument();
      

  6.   

    我觉得以上各位回答的问题,都没有好好看清贴子的意思,在必须达到某些MFC做不到的事时,有违文档视结构也是没办法的办法。
      

  7.   

    一定要读候杰的深入浅出MFC,也可能是你的MFC知识不够,才提出这样的问题,我是只有违OOP原则的问题,如果是MFC提倡你去做的事,而你又违背了这个规则,这不是解决问题的办法,MFC设计得比较完善,应该可以不向你提出来的那样做这件事情