如何在MFC中使用CfileDialog选择特定文件

时间:2015-02-26 07:05:58

标签: c++ winapi mfc

我想打开一个文件对话框,允许用户只选择名称为#34; myapplication.ini"的文件。并且用户只能浏览文件夹以检查文件是否存在以进行选择。

所以我遇到了CFileDialog,除了限制它只显示名称为" myapplication.ini"

的文件之外,它几乎可以做我想做的事情。

目前我对CFiledialog的使用

CFileDialog FileDialog(TRUE,"features.ini", NULL,OFN_HIDEREADONLY,NULL);

我不确定应该改变什么以使其按预期工作。

2 个答案:

答案 0 :(得分:3)

声明过滤字符串,如下所示:

static TCHAR BASED_CODE szFilter[] = _T("features.ini (features.ini)|features.ini|");

然后将其传递给您的CFileDialog ctor:

CFileDialog FileDialog(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);

答案 1 :(得分:3)

这听起来像是一个糟糕的用户界面。即使您过滤掉除该文件之外的所有文件,用户也可以覆盖过滤器。如果您不允许用户选择文件名,为什么要求他们选择?

在我看来,您实际在做的是要求用户选择一个文件夹。因此,不要在文件对话框中显示文件夹选择对话框CFolderPickerDialog