2 crossuniverse crossuniverse 于 2016.01.28 11:18 提问

如何用MFC界面上的浏览按钮打开指定的文件夹并能浏览和处理其中的文本文档?

如何用MFC界面上的浏览按钮打开指定的文件夹并能浏览其中的文本文档?
并可对文档进行操作?比如双击某一文档就能绘图或打开之类的,本人MFC小白,求源程序,求高手指点!

3个回答

Linux__Ubuntu
Linux__Ubuntu   2016.01.28 16:32
已采纳

你试试getopenfilename函数

oyljerry
oyljerry   Ds   Rxr 2016.01.28 11:36

SHFileOperation() 或者CFileDialog

WinsenJiansbomber
WinsenJiansbomber   2016.01.29 08:31

使用Visual C++ 6.0

方法一:使用向导生成代码
1. 新建工程,使用MFC EXE 向导,第1步选中 文档/视图架构支持, 其它可以使用默认选项。
2. 第6步时,选择工程的视图类,即 C****View 那个,将其基类设置为 CEditView,这个基类使得程序可以用来做编辑。
图片说明
图片说明
图片说明
方法二:自己添加代码
1. 添加一个无文档/视图架构支持的MFC EXE。
2. 修改工程的视图类,即按 C****View 这样命名的类,并修改继承 CEditView 类;
class CChildView : public CEditView
3. 修改工程主窗口类,即按 CMainFrame 这样命名的类,添加一个公有方法,并按以下代码实现,m_wndView为视图类的引用:
void SetContentText(CString);

    void CMainFrame::SetContentText(CString szText){
        m_wndView.SetWindowText(szText);
    }
  1. 添加菜单,增设一个 打开(&O) 菜单项,设置好ID, 假设为ID_APP_OPEN。然后在主程序类中的消息映射(BEGIN_MESSAGE_MAP)中添加菜单和相应处理方法的映射: ON_COMMAND(ID_APP_OPEN, OnAppOpen)
  2. 给主程序类,即APP类,添加一个 OnAppOpen 方法用来加载文本文件。
    void CDemoApp::OnAppOpen()
    {
    CFileDialog box(TRUE, "txt", NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "(*.txt;*.inf)|*.txt;*.inf||");
    if(box.DoModal() == IDOK)
    {
    CString szBuf, szName = box.GetPathName();
    //MessageBox(NULL, szName, "Open", MB_OK);
    CStdioFile *f = new CStdioFile(szName, OFN_OVERWRITEPROMPT);
    f->ReadString(szBuf);
    f->Close();
    delete f;
    ((CMainFrame *)m_pMainWnd)->SetContentText(szBuf);

    }
    

    }

由于CStudioFile.ReadString()读取动作是一行行处理的,可以考虑使用CFile::Read()如果需要不分行读取。

crossuniverse
crossuniverse 多谢!
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!