zoukankan      html  css  js  c++  java
  • CFileDialog类的详情

    CFileDialog类封装了Windows常用的文件对话框。

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

    void CnotepadDlg::OnOpen()
    {
        char szFileFilter[] = "文本(*.txt)|*.txt|";
        char szFileExt[] = "txt";//设置扩展名为txt
        CFileDialog dlg(true, szFileExt, NULL, OFN_HIDEREADONLY, szFileFilter);
        if (dlg.DoModal() == IDOK)
        {
            CStdioFile File;
            CString strLine,strText;//设置两个变量,一个用于存储文本一行的内容,一个存储所有的内容
            File.Open(dlg.GetPathName(), CFile::modeReadWrite);
            while (File.ReadString(strLine))
            {
                strLine += "
    ";//这个必须加,这样就能正常换行
                strText += strLine;
            }
            m_edit.SetWindowText(strText);
            File.Close();
        }
    }

    以上是在记事本MFC程序中的“打开文件”按钮下的代码。

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

     参数: bOpenFileDialg 如果为TRUE则创建文件打开对话框;如果为FALSE则构造一个File Save As(另存为)对话框。  
                lpszDefExt 缺省文件扩展名,如果用户在文件名编辑框中不包含扩展名,则lpszDefExt定义的扩展名自动加到文件名后。如果为NULL,则不添加扩展名。 
                lpszFileName 初始显示于文件名编辑框中的文件名,如果为NULL,则不显示初始文件名。  
                dwFlags 一个或多个标志的组合,使你可定制对话框。要了解这些标志的描述,可参阅联机文档“Win32 SDK”中的OPENFILENAME结构。如果你改变m_ofn.Flags结构成员,在改变中用OR操作保持缺省行为完整。 
                lpszFilter 一列字符串对,指定可以应用到文件的过滤器。如果指定过滤器,仅被选择的文件显示于文件列表框中。请参阅说明部分,了解如何使用过滤器。 
                pParentWnd 指向文件对话框对象的父窗口或拥有者窗口。  

    说明:
                1、调用此成员函数构造一个标准Windows文件对话框对象,或构造一个打开对话框或构造一个存盘对话框,根据bOpenFileDialog的值决定。
                2、OFN_ALLOWMULTISELECT标志。你应提供文件名缓冲区来放置返回的多个文件名的列表,这通过用一个分配了的缓冲区指针替换m_ofn.lpstrFile来实现,要在创建了CFileDialog之后调用DoModal之前进行此操作。另外,必须用m_ofn.lpstrFile指向的缓冲区字节数来设置m_ofn.nMaxFile。
                3、为使用户用鼠标或键盘改变一个Explorer风格对话框的大小,设置OFN_ENABLESIZING标志,这仅当你提供一个钩子进程或定制模板时才有必要设置。此标志仅与一个Explorer风格的对话框一起工作,旧风格的对话框不可改变大小。
                4、lpszFilter参数用于判断文件名类型及文件列表框中哪些可被显示。双字符串的第一个字符串描述过滤器,第二个串表明使用的文件扩展名多重扩展可用“;”来指定。字符串由两个“|”字符结尾,最后是一个NULL。也可使用CString对象作为参数。
    例如,Mirosoft Excel 允许用户用.XLC扩展名(表)或.XLS(工作表)打开文件,Excel过滤器应如下:
    static char BASED_CODE szFilter[] =
    "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";

  • 相关阅读:
    VC++6.0编译环境介绍
    (六)flask搭建博客系列之HTTPTokenAuth
    (五)flask搭建博客系列之LoginManager
    (四)flask搭建博客系列之FlaskForm
    (三)flask搭建博客系列之BootStrap
    (二)flask搭建博客系列之SQLAlchemy
    (一)flask搭建博客系列之环境项目搭建
    (十)python语法之图像处理
    (九)python语法之机器学习
    (八)python语法之Tkinter
  • 原文地址:https://www.cnblogs.com/Zerozzx/p/7112442.html
Copyright © 2011-2022 走看看