我做了个SDI程序,想要像“记事本”一样,可以打开文本文档,但是不需要编辑和保存功能。
现在,我的问题是:
在用CFileDlg对话框获得打开文件的完整路径后,怎么打开该文件,并显示出来,在这里不使用CEditView.请各位指点!

解决方案 »

  1.   

    那你可以去看看MFC中CRichEdit/CEdit的源代码,然后自己参考着实现
      

  2.   

    声明一个CStdioFile 对象
    CStdioFile file;
    CString str;
    CDC *pDc=GetDC ();
    int nY=0;
    file.Open (dlg.GetPathName (),CFile::modeRead);
    while (file.ReadString (str))
       pDc->TextOut (0,nY,str);
    file.Close ();
    大约就是上面这样子,具体再调试一下吧
      

  3.   

    To:magicyang87(magicyang)如果像你的代码,那么不管原来的文件有几行,都只显示一行。
    因为nY始终不变。
    还有,如果用这种方法就要去算,每行的高度,然后改变nY.
      

  4.   

    现在,我打算用CDC::DrawText(),不知道会如何??
      

  5.   

    是我粗心了,nY不用算,这样就可以了,DrawText一样的
    CStdioFile file;
    CString str;
    CDC *pDc=GetDC ();
    int nY=0;
    file.Open (dlg.GetPathName (),CFile::modeRead);
    while (file.ReadString (str))
    {
       pDc->TextOut (0,nY,str);
       nY++;
    }
    file.Close ();
      

  6.   

    如果只是简单的显示功能 
    而且希望显示换行效果比较好的话 
    比如窗口大小改变 
    能实现记事本那样的文本自动换行的效果 
    那么就需要得到使用字体的宽 得到窗体大小 
    判断一行最多能写入多少个字 
    然后textout出来就可以