我想在MainFrm中打开一个.res的文件,经过读取转化在显示出来,
大概思路是怎么样啊?我一点都不懂。(是单文档)

解决方案 »

  1.   

    在CMainFrame类中,或是在CApp类中,或是在CXXView类中写都可以,处理ID为ID_FILE_OPEN的COMMAND消息。
    代码大约是这个样子的:
    CFileDialog dlg(TRUE);
    CFile file;
    if(dlg.DoModal()==IDOK)
    {
     file.open(dlg.GetPathName(),...);//打开文件}
      

  2.   

    我是那样写的啊,打开了也转换好了,可怎么显示出来呢?因为打开的是.res文件啊
      

  3.   

    我是那样写的啊,打开了也转换好了,可怎么显示出来呢?因为打开的是.res文件啊
    ==================================
    res文件是编译好的资源文件吧,应该是二进制的,你想显示什么呢?二进程内容还是什么?
      

  4.   

    可以看下<<MFC程序设计>>关于打印那章, 通过MainFrame打开文件, 在View显示出来
      

  5.   

    res文件是公司仪器测量的文件,我想把他打开显示出来,。。
    我在MainFrm里打开了文件,然后再View里定义了extern CFile file来获得MainFrm的那个文件,然后把它显示出来。
    你看怎么做啊?
      

  6.   

    void CReadFileView::OnDraw(CDC* pDC)
    {
    CReadFileDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
    return;}
    我不明白这一段时什么意思啊?
    能给我解释一下吗?
      

  7.   

    这个是OnDraw函数,一般绘图操作就放在这个里面
      

  8.   

    res文件是公司仪器测量的文件,我想把他打开显示出来,。。
    我在MainFrm里打开了文件,然后再View里定义了extern CFile file来获得MainFrm的那个文件,然后把它显示出来。
    你看怎么做啊?
    ============
    根据这个文件的格式来显示吧,不知道res具体的内容,不好说
      

  9.   

    这里的pDoc是取得文档类的指针,应该和你的应用没有关系,你用pDC来显示,如果是显示字符的话,写成:
    pDC->TextOut(x,y,字符,字符长度);x,y是显示位置。
      

  10.   

    我按你说的写了,在View的OnFileOpen()函数里打开文件,在OnDraw()函数里显示出来,
    但还是运行时错了啊。。
      

  11.   

    void CReadFileView::OnFileOpen()//这是我写的打开文件
    {
    // TODO: 在此添加命令处理程序代码
    CFileDialog fileDlg(true);
    fileDlg.m_ofn.lpstrFilter=_T("Text Files(*.res;*log;*RES;*LOG)\0*.res;*log;*RES;*LOG\0\0"); if (IDOK==fileDlg.DoModal())
    {

    file.Open(fileDlg.GetFileName(),CFile::modeRead);

    }
    }void CReadFileView::OnDraw(CDC* pDC)//我想在这显示
    {
    CReadFileDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
    return;
    // TODO: 在此处为本机数据添加绘制代码
    if (file.GetLength()!=0)
    {
    CString RecordNo;
    long int lon=0;
    file.Seek(lon,CFile::begin);//跳至文件保存相应位置
    file.Read(&RecordNo,sizeof(long int));//读记录序列
    pDC->TextOut(50,50,RecordNo);
    }}
    另外我也在View的.h文件中定义了CFile file;在析构函数中赋值了,file=NULL;
    编译说:'CObject::operator =' : cannot access private member declared in class 'CObject'
      

  12.   

    CFile file;在析构函数中赋值了,file=NULL;
    -----------------------------------------
    囧,你看过file直接赋值为NULL了吗?我是没有看到过
      

  13.   

    是构造函数,打错了。。
    那CFile file怎么赋值啊?