使用CFileDialog作为打开的文件,我需要允许用户只选择一个显示在对话框列表区域中的文件,比如点击它。我们不希望用户能够在“文件名”控件中输入名称。 OPENFILENAME(OFN)结构有几个不同的标志(http://msdn.microsoft.com/en-US/library/ms646839%28v=vs.80%29.aspx),但我没有看到阻止用户键入文件名的标志。MFC CFileDialog只打开选择文件
我看到的最接近的东西是OFN_FILEMUSTEXIST,但只指定该文件存在;它仍然允许用户键入一个名字。
有没有办法做到这一点,而不继承一个新的类?
更多信息
我们需要防止它们在文件名输入,因为他们可以打开一个不恰当的。使用lpszFilter
参数,我们过滤文件名,使其仅在文件名(不是扩展名)中显示ABC的文件。所以如果他们输入文件名,他们可以输入类似myCoolFileDEF.ext
。如果该文件存在,它将继续并让它们打开它(即使它们只打开文件名为ABC的文件,该对话框将不会关闭错误消息)。
我同意 - 你打败了我的答案,但!通过在*文件名提示符之后放置验证逻辑*,您还可以重用它,例如验证命令行中提供的文件名或通过拖放操作。 – 2013-04-11 07:09:58