CFileDialog是MFC类库中的文件选择对话框类,它提供了一种简便的方法,在应用程序中选择文件并获取文件的路径名称。
使用CFileDialog的基本方法是创建一个CFileDialog对象,设置对话框的属性,然后调用DoModal函数显示对话框,并获取用户的选择。
具体步骤:
1. 创建CFileDialog对象。
2. 设置文件过滤器。
3. 设置初始目录。
4. 显示对话框。
5. 获取用户选择的文件名。
可以使用以下构造函数创建CFileDialog对象:
CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName = NULL,DWORD dwFlags = OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter = NULL,CWnd* pParentWnd = NULL);
参数说明:
bOpenFileDialog:TRUE表示打开文件对话框,FALSE表示保存文件对话框。
lpszDefExt:默认扩展名,如果用户没有输入扩展名,则自动添加该扩展名。
lpszFileName:默认文件名。
dwFlags:对话框的属性,可以设置多个属性,例如:OFN_HIDEREADONLY、OFN_OVERWRITEPROMPT等。
lpszFilter:文件过滤器。
pParentWnd:对话框的父窗口。
文件过滤器是一个字符串,用于限定用户可以选择的文件类型。例如:
\”所有文件 (*.*)|*.*||\”
\”图像文件 (*.bmp;*.jpg)|*.bmp;*.jpg||\”
\”可执行文件 (*.exe)|*.exe||\”
其中,| 表示分割字符串,如果有多个过滤器,必须用两个 | 分开。
CFileDialog的默认初始目录是程序的当前目录,可以使用以下方法设置初始目录:
m_ofn.lpstrInitialDir = _T(\”C:\\\\\”);
m_ofn.lpstrInitialDir = NULL;
m_ofn.lpstrInitialDir = AfxGetApp()->m_pszHelpFilePath;
在调用DoModal函数后,可以使用GetPathName函数获取用户选择的文件名。
例如:
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
CString filePathName = dlg.GetPathName();
1. CFileDialog类是从CCommonDialog类中派生的,它们共用一个结构体m_ofn,因此在设置其它对话框类的属性时,可能会影响到CFileDialog。
2. CFileDialog类中的默认按钮文本同CCommonDialog类中的一样。
3. 如果需要使用Windows 7的文件对话框,可以使用CFileDialog的后代类CFileDialogImpl。
4. CFileDialog在资源释放方面需要注意,在显示完对话框后一定要调用CFileDialog的析构函数来释放资源。
上一篇:电脑音响无声音是什么原因电脑音响无声音怎...
下一篇:秒收录新版管理平台正式上线...