visual c++中CFileDialog对话框             
CFileDialog对话框
CFileDialog类主要提供一个文件对话框,如图1所示。

图1  文件存取对话框
                         CFileDialog的构造函数用于创建一个文件对话框,其原型如下:
            CFileDialog(Bool bOpenFileDialog,LPCTSTR lpszDefExt=NULL,
            LPCTSTR lpszFileName=NULL,
            DWORD dwflags=OPN-HIDEREADONLY|OFN-OVERWRITEPROMPT,
            LPCTSTR lpszFilte)            参数bOpenFileDialog值为真时,创建一个FileOpen对话框,否则创建一个FileSave对话框;lpszDefExt为程序自动添加的文件扩展名;lpszFilter用来指定文件列表框中的文件名;dwFlags是决定对话框风格的一组标志;lpszFilter用来指定文件列表框中可以出现的文件类型,每一种文件类型用两个字符串描述,字符串之间用“|”符分隔,最后以两个“|”符结束;pParentWNd是指向父窗口的指针。
CFileDialog类中常用的成员函数如表1所示。

表1            CFileDialog类中常用的成员函数
函  数  名
 说    明
GetPathName
 返回用户在对话框中选择的包括文件名在内的完整路径
                         GetFileName             返回用户在对话框中选择的文件名
                         GetFileExt             返回用户在对话框中选择的文件扩展名
                         GetFileTitle             返回用户在对话框中选择的文件名(不带扩展名)
通过CFileDialog类提供的GetPathName()和GetFileName()两个成员函数,可以取出用户选取的完整路径(包括文件名)及文件名。
请看下面的例子:单击【选择文件】按钮,选择一个文件,在下方的文件信息区域出现关于此文件的信息,如图2所示。
单击打开FileOpen对话框
所选择文件的部分信息

图2  CFileDialog实例
双击【…】按钮,添加OnButton1函数,在此函数中输入以下代码:
                         void CMyDlg::OnButton1()
            {
            CFileDialog dlg(true,"文本文件",NULL,0,"所有文件|*.*");
            dlg.DoModal();
            //http://www.isstudy.com
            m_EdtFileName.SetWindowText(dlg.GetFileName());    //显示文件名
            CFile file;    //声明一个CFile对象
            file.Open(dlg.GetPathName(),CFile::modeRead);
            float fFileLenght=(float)file.GetLength();    //取出文件大小
            CString str;
            str.Format("%f",fFileLenght/1024);
            file.Close();
            m_EdtPath.SetWindowText(dlg.GetPathName());     //取出文件完整路径
            m_EdtFileExt.SetWindowText(dlg.GetFileExt());    //取出扩展名
            m_EdtSize.SetWindowText(str);
            }