C++_打开文件对话框

1.CFileDialog类封装了Windows经常使用的文件对话框函数

CFileDialog构造函数的定义形式为:spa

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

第一个参数: bOpenFileDialog : TRUE则显示打开文件对话框,FALSE则显示保存文件对话框。指针

第二个参数: lpszDefExt : 指定默认的文件扩展名。code

第三个参数: lpszFileName : 指定默认的文件名 。blog

第四个参数: dwFlags : 指明一些特定风格。it

第五个参数: lpszFilter : 指明可供选择的文件类型和相应的扩展名。class

第六个参数: pParentWnd : 为父窗口指针。扩展

(1)选择一个xls或者xlsx格式的文件,具体用法如例:file

CString strFileFilter(_T("XLS File(*.xls)|*.xls|XLSX File(*.xlsx)|*.xlsx||"));
CFileDialog fileOpen(TRUE, _T("*.xls;*.xlsx"), _T("数据表"), OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,strFileFilter , NULL);
fileOpen.m_ofn.lpstrTitle = _T("对话框标题");
if (IDOK != fileOpen.DoModal())
    return;

fileOpen.GetPathName ();//选择的路径(E:\CAD选线成果样例1.dwg)
fileOpen.GetFileName();//文件名称(CAD选线成果样例1.dwg)
fileOpen.GetFileExt();//文件后缀(dwg)

(2)导出到文件夹内,也能够实现选择到文件夹层而不是文件层构造函数

CFileDialog saveFile = CFileDialog( FALSE,".xls","信息.xls",OFN_CREATEPROMPT|OFN_PATHMUSTEXIST,"Microsoft Excel(*.xls)");
if (IDOK==saveFile.DoModal())
{
     CString sExcelFile = saveFile.GetPathName();
}

2.DoPromptFileName:MFC显示文件打开对话框得到文件名。

DoPromptFileName构造函数的定义形式为:

BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle,DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate);

第一个参数:fileName:选择的文件路径;第二个参数:nIDSTitle:第三个参数:lFlags:第四个参数:bOpenFileDialog:第五个参数:pTemplate

具体用法如例:

CString newName;
if (!DoPromptFileName(newName, AFX_IDS_OPENFILE, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, TRUE, NULL))
	return;
相关文章
相关标签/搜索