我遇到一个问题:我在开发一个单文档图象处理软件,先是在view类里实现了处理效果,直接使用:CDC* pDC= GetDC();获取显示区域的DC。现在想把处理效果函数改为全局函数,请问如何得到显示区域(VIEW)的DC.请指教。

解决方案 »

  1.   

    一个简单的办法,在APP对象中建立一个CView的指针成员(public),然后在视图构造函数或初始化函数中把自已的(this)指针赋给它,
    以后在其它地方就可以用 ((YourAppClass*)AfxGetApp())->CView的成员名,就OK了。
      

  2.   

    从一个对象得到另一个对象的方法: 
        CDocument对象取得view通过GetFirstViewPosition GetNextView
                     取得文档模板GetDocTemplate
       CView对象取得文档对象GetDocument
                    边框窗口GetParentFrame
       CMDIChildWnd或 CFrameWnd对象取得活动视图GetActiveView
                                       活动视的文档GetActiveDocument
       还有全局的:AfxGetApp()(获得什么我就不说了)
       还有在CWndApp中有个成员数据m_pMainWnd,呵呵虽然是个菜鸟问题,可还是有代表性的 问题,我也曾遇到过同样的问题,我当时的方法是把CFramWnd、CDocuemnt、CView中的成员members浏览了一边,呵呵,花了点时间