如题。谢谢。

解决方案 »

  1.   

    CString str;// in Mydoc.h public:  
    BOOL CMyDoc::OnNewDocument()
    {
    if (!CDocument::OnNewDocument())
    return FALSE; str ="add your document"; return TRUE;
    }
    void CMyView::OnDraw(CDC* pDC)
    {

    CMyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);         pDC->TextOut(0,0,pDoc->str);
    }
      

  2.   

    这位大侠好像误解我的意思了。我的意思是:
    比如我有一个 CMyDoc类,相应的有一个CMyView类,
    而我在 CMyView 类消息处理函数中,需要再创建一个CMyDoc类和CMyView类。然后新的CMyView类显示为新的窗口。就像菜单中新建一样,但是新建的文档内容不是空的,而是再原先的函数中已经定义好的。
      

  3.   

    1,先定义一个文档模板指针,在winapp的init函数里对它赋于程序默认的文档模板指针值,
    2,然后在消息处理函数获的这个指针,需要自己写一个get函数,
    3,接下来用这个指针来创建一个新的文档,
    4,你的事情了.....
      

  4.   

    void CMdiafeView::OnViewNewview() 
    {
    //这样做是可以让你在打开的新窗口显示任意的东西,
    //但是窗口一旦重画,窗口还是还原为空白的
    //如果用永久的,还是得在OnDraw里画
    // GetParent()->SendMessage(WM_CLOSE);
    CWinApp * pApp =AfxGetApp();
    POSITION pos,pos1;
    pos=pApp->GetFirstDocTemplatePosition();
    CDocTemplate *pDocTemplate;
    if(pos !=0){
    pDocTemplate=pApp->GetNextDocTemplate(pos);
    CDocument *pDoc =pDocTemplate->OpenDocumentFile(NULL);
    pos1=pDoc->GetFirstViewPosition();
    if(pos1 !=0){
    CView *pView=pDoc->GetNextView(pos1);
    pView->Invalidate();
    pView->UpdateWindow();
    CDC *pDC =pView->GetDC();
    pDC->TextOut(0,0,"newView\n");
    }
    }
    }
      

  5.   

    实在太感谢了。
    我竟然没有看到opendocumentfile这个函数。呵呵。