我在Doc类里面 用串行化 读取了一大段 CString str现在我要在view里 显示这些内容那么 在view类的 ondraw 里怎么调用doc类的str呢?

解决方案 »

  1.   

    CYouSDIDoc   *pDoc=GetDocument();
    pDoc->str;
      

  2.   

    使用这个
    CDocument* GetDocument( ) const;
      

  3.   

    看看View类的OnDraw函数中的前两句
      

  4.   

    CXDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    pDoc->.....
      

  5.   

    CReadTxTDoc* pDoc = GetDocument();
    pDoc->str;
    ASSERT_VALID(pDoc);
    if (!pDoc)
    return; // TODO: 在此处为本机数据添加绘制代码

    TextOut(0,0,str);还是说   “str”: 未声明的标识符
      

  6.   

    我也在 XXview.cpp
    中包含了 doc.h现在代码如下 报错  str 未声明void CReadTxTView::OnDraw(CDC* pDC)

    CReadTxTDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
    if (!pDoc)
    return; // TODO: 在此处为本机数据添加绘制代码
    pDC->TextOut(0,0,str.GetBuffer(20));
    }
      

  7.   

    你的str是类的成员变量?
    你不会定义成类成员函数里的临时变量了吧?
      

  8.   


    定义的是 doc类的全局变量
    #pragma once
    class CReadTxTDoc : public CDocument
    {
    protected: // 仅从序列化创建
    CReadTxTDoc();
    DECLARE_DYNCREATE(CReadTxTDoc)// 属性
    public:// 操作
    public:// 重写
    public:
    virtual BOOL OnNewDocument();
    virtual void Serialize(CArchive& ar);// 实现
    public:
    virtual ~CReadTxTDoc();
    #ifdef _DEBUG
    virtual void AssertValid() const;
    virtual void Dump(CDumpContext& dc) const;
    #endifprotected:// 生成的消息映射函数
    protected:
    DECLARE_MESSAGE_MAP()
    public:
    CString str;              //定义这里
    };
      

  9.   

    晕,应该是这样的pDC->TextOut(0,0,pDoc->str);
      

  10.   


    啊 谢谢 出来了但是只有一行 能再帮忙看看吗?我在DOC类的串行化里这样读取的while(ar.ReadString(strline))
    {
    str+=strline;
    str+="\r\n";

    }View里是这样输出的void CReadTxTView::OnDraw(CDC* pDC)

    CReadTxTDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
    if (!pDoc)
    return; // TODO: 在此处为本机数据添加绘制代码
    pDC->TextOut(0,0,pDoc->str);
    }
      

  11.   

    准确的说是三行内容是================================================================================
        MICROSOFT 基础类库: ReadTxT 项目概述
    ===============================================================================应用程序向导已为您创建此 ReadTxT 应用程序。此应用程序不仅演示使用 Microsoft 基础类的基本知识,而且可作为编写应用程序的起点。此文件包含组成 ReadTxT 应用程序的各个文件的内容摘要。ReadTxT.vcproj
        这是使用应用程序向导生成的 VC++ 项目的主项目文件但是只显示前三行  并且是输出成一行了
      

  12.   

    pDC->DrawText(pDoc->str,CRect(0,0,200,100),DT_LEFT);
      

  13.   

    那个Rect是可以变化的啊,你想在哪里输出就输出到哪里啊