CFileDialog类的构造函数:
explicit CFileDialog(
BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL,
DWORD dwSize = 0,
BOOL bVistaStyle = TRUE
);
参数说明:
- bOpenFileDialog:决定创建哪种类型的对话框:打开文件对话框用TRUE,保存文件对话框用 FALSE;
- lpszDefExt:默认的文件扩展名。 若 NULL,无默认扩展名;
- lpszFileName:显示文件名框的初始文件名。 若 NULL,不显示初始文件名;
- dwFlags:指明一些特定风格;
- lpszFilter:指明可供选择的文件类型和相应的扩展名;
- pParentWnd:父窗口指针。
一些重要的方法:
- CString CFileDialog::GetPathName( );// 得到完整的文件名,包括目录名和扩展名如:c:\ test\ test1.txt
- CString CFileDialog::GetFileName( );// 得到完整的文件名,包括扩展名如:test1.txt
- CString CFileDialog::GetFileExt( );// 得到完整的文件扩展名,如:txt
- CString CFileDialog::GetFileTitle ( );// 得到完整的文件名,不包括目录名和扩展名如:test1
- POSITION CFileDialog::GetStartPosition( );// 对于选择了多个文件的情况得到第一个文件位置。
- CString CFileDialog::GetFolderPath();//得到文件路径。
- virtual CFileDialog::INT_PTR DoModal( );//显示对话框并使用户可以进行选择
举例:
CFileDialog fileDlg(TRUE);
CString FilePath,FileName;
fileDlg.m_ofn.lpstrFilter =
_T("XXX Files (*.xxx;*.xxy)\0*.xxx;*.xxy\0All Files (*.*)\0*.*\0\0");//设置文件类型
if (fileDlg.DoModal() == IDOK)
{
FilePathName = fileDlg.GetFolderPath() ;//获取文件路径
FileName= fileDlg.GetFileName();//获取文件名
}