我想打开一个文件对话框,允许用户只选择名称为#34; myapplication.ini"的文件。并且用户只能浏览文件夹以检查文件是否存在以进行选择。
所以我遇到了CFileDialog,除了限制它只显示名称为" myapplication.ini"
的文件之外,它几乎可以做我想做的事情。目前我对CFiledialog的使用
CFileDialog FileDialog(TRUE,"features.ini", NULL,OFN_HIDEREADONLY,NULL);
我不确定应该改变什么以使其按预期工作。
答案 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
。