首页 > 代码库 > 弹出打开/保存文件对话框 选择文件夹对话框
弹出打开/保存文件对话框 选择文件夹对话框
打开/保存文件对话框:
CFileDialog::CFileDialog( BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框 LPCTSTR lpszDefExt = NULL, //默认的文件扩展名 LPCTSTR lpszFileName = NULL, //默认的文件名 DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格 LPCTSTR lpszFilter = NULL, //列出可供选择的文件类型和相应的扩展名 CWnd* pParentWnd = NULL //父窗口句柄指针);
(1)打开文件对话框
static TCHAR szFilter[] = _T("Info Files (*.csv)|*.csv|") _T("Info Files (*.txt)|*.txt|") _T("Info Files (*.csv;*.txt)|*.csv;*.txt|");CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST,szFilter,NULL);if(hFileDlg.DoModal() == IDOK){ m_path = hFileDlg.GetPathName(); UpdateData(FALSE);}
LPCTSTR lpszFilter 参数格式如:"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
创建文件对话框可以使用DoModal(),在返回后可以利用下面的函数得到用户选择:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/test/test1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
(2)保存文件对话框
把第一个参数设置为FALSE即可,其他与(1)类似。
(3)选择文件夹对话框
CString strPath; TCHAR szDir[MAX_PATH]; BROWSEINFO bi; bi.hwndOwner = this->m_hWnd; bi.pidlRoot = NULL; bi.pszDisplayName = szDir; // 此参数如为NULL则不能显示对话框 bi.lpszTitle = _T("请选择目录"); bi.ulFlags = BIF_STATUSTEXT | BIF_USENEWUI | BIF_RETURNONLYFSDIRS; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; ITEMIDLIST *pidl = SHBrowseForFolder(&bi); // 调用显示选择对话框 if(pidl == NULL) { return; } // 取得文件夹路径到Buffer里 if(!SHGetPathFromIDList(pidl,szDir)) { return; } else { strPath = szDir; // 保存为CString }
弹出打开/保存文件对话框 选择文件夹对话框
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。