单文档中,在一个摸态对话筐中如何获得 view类的指针啊。
我可以用 getparent()获得mainframe的指针,然后呢?
谢拉。

解决方案 »

  1.   

    如果是SDI程序,CMainFrame调用GetActiveView获得CView,而CView可以调用GetDocument获得CDocument。如果已知CDocument,可以使用GetFirstViewPosition获得第一个相关的CView,然后使用GetNextView获得下一个的CView。之所以这么做,是因为MFC允许一个CDocument拥有多个CView。你可以使用下面的这段代码来获得一个CDocument拥有的所有CView: 
        POSITION pos = GetFirstViewPosition(); 
        CView* pFirstView = GetNextView( pos ); 
        // This example uses CDocument::GetFirstViewPosition 
        // and GetNextView to repaint each view. 
        void CMyDoc::OnRepaintAllViews() 
        { 
         POSITION pos = GetFirstViewPosition(); 
         while (pos != NULL) 
         { 
         CView* pView = GetNextView(pos); 
         pView->UpdateWindow(); 
         } 
        } 
    http://www.china-askpro.com/msg44/qa84.shtml
      

  2.   

    哦,懂了点了。
      还有个问题,  在sdi或mdi中有没有什么办法知道用户在
      程序中打开了多少对话筐,哪些对话筐?
      

  3.   

    获得view指针如果你只有一个view的话这样最简单了
    CMainFrame* pFrame=(CMainFrame*)AfxGetMainWnd();
    pFrame->GetActiveView();
    ==========================
    每打开一个对话框你就计数呗,然后在某个地方比如说TOOLBAR或statusbar上显示数量
      

  4.   

    是这样的,在MDI中我打开的一个子筐架窗口都会同时打开一些(不定量的,取决与用户)非磨态对话筐显示一些相关的信息,而关闭一个子窗口时需要同时将这些相关的对话框关闭,这该怎么去实现呢?