• MFC打开文件对话框


    {
    CString FilePathName;
    CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框
    if(dlg.DoModal()==IDOK)
    FilePathName=dlg.GetPathName();
    }

    文件名保存在了FilePathName里,然后处理吧

    上面内容来自百度知道,去给amote258点个赞吧。

    -------------------我是分割线----------------

    上面只是最简单的用法,那么更复杂的用法包括指定扩展名等等。下面是CFileDialog的详解:

    CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。
    CFileDialog的语法:

    CFileDialog(BOOL bOpenFileDialog,
      LPCTSTR lpszDefExt=NULL,
      LPCTSTR lpszFileName=NULL,
      DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
      LPCTSTR lpszFilter=NULL,
      CWnd * pParentWnd=NULL); 

    1. 第一个参数 bOpenFileDialog为TRUE或FALSE。TRUE为打开文件;FALSE为保存文件。 
    2. 第二个参数 lpszDefExt为缺省的扩展名。如果用户用户没有在文件名编辑框中输入文件扩展名,默认文件扩展名被自动附加到文件名上。如果设置为空,不附加任何扩展名。 
    3. 第三个参数 lpszFileName为显示在文件名组合框的编辑框的文件名,一般可选NULL
    4. 第四个参数 dwFlags为对话框风格,一般为OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 即隐藏只读选项和覆盖已有文件前提示。
      1. OFN_ALLOWMULTISELECT:允许选择多个文件

        OFN_CREATEPROMPT:如果输入的文件名不存在,则对话框返回询问用户是否根据次文件名创建文件的消息框

        OFN_FILEMUSTEXIST:只能输入已存在的文件名

        OFN_FORCESHOWHIDDEN:可以显示隐藏的文件

        OFN_NOREADONLYRETURN:不返回只读文件

        OFN_OVERWRITEPROMPT:保存的文件已存在时,显示文件已存在的信息

    5. 第五个参数 LpszFilter为下拉列表枢中显示文件类型。
      1.  lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如: 

        "JPG Files (*.jpg)|*.jpg|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
    6. 第六个参数 pParentWnd为父窗口指针, 一般可选NULL。

    代码示例:

    void CMyDialog::OnBnClickedOpennc()
    {
        // TODO: 在此添加控件通知处理程序代码
        CString FilePathName;
        CFileDialog dlg(TRUE, //TRUE为OPEN对话框,FALSE为SAVE AS对话框
            NULL, 
            NULL,
            OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
            (LPCTSTR)_TEXT("JPG Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"),
            NULL);
        if(dlg.DoModal()==IDOK)
        {
            FilePathName=dlg.GetPathName(); //文件名保存在了FilePathName里
        }
        else
        {
             return;
        }
    }

    以上内容参考自siriurs28,文中有修改。感谢原作者。

    ---------------------我还是分割线----------------

    下面再补充一点获取文件名的几个函数:

    CFileDialog 用于取文件名的几个成员函数:

    假如选择的文件是C:WINDOWSTEST.exe

    则:

    (1)GetPathName();取文件名全称,包括完整路径。取回C:WINDOWSTEST.exe

    (2)GetFileTitle();取文件全名:TEST.exe

    (3)GetFileName();取回TEST

    (4)GetFileExt();取扩展名exe

     

    -----

    更详细的内容可以参考renai2008的专栏

  • 相关阅读:
    关于数论的一些总结
    gym101431B
    4.29训练题解
    hdu4347
    5.13训练的一些题解
    5.20训练的一些题解
    hdu4796
    hdu5984
    bzoj1941 hdu5992
    hdu4307
  • 原文地址:https://www.cnblogs.com/CoolSummer/p/3521059.html
Copyright © 2020-2023  润新知