我正在使用带有 OPENFILENAME 结构的 GetOpenFileName,该结构使用 lpstrFilter 将文件过滤为 *.JPG。但是,在文件打开对话框中,对于文件名,用户可以输入 *.XLS 并查看同一文件夹中的每个 Excel 文件并选择打开 XLS 文件。我想阻止用户这样做。例如,我真的想将它们限制为只能选择 JPG 文件。有没有办法做到这一点?
问问题
577 次
1 回答
5
在OPENFILENAME
结构中,启用OFN_EXPLORER
和标志,并在字段中OFN_ENABLEHOOK
提供指向Explorer 样式回调函数lpfnHook
的指针。当回调收到CDN_FILEOK
通知时,您可以验证输入的文件(不仅仅是文件名,甚至是实际的文件内容,如果需要),然后返回适当的返回值来接受/拒绝选择:
如果挂钩过程返回零,则对话框接受指定的文件名并关闭。
要拒绝指定的文件名并强制对话框保持打开状态,请从挂钩过程返回一个非零值并调用该
SetWindowLong
函数来设置一个非零DWL_MSGRESULT
值。
于 2017-05-01T20:44:59.413 回答