winapi 是否可以将文件对话框(打开/保存)限制到特定文件夹?
OPENFILENAME fileDialogSettings;
...
fileDialogSettings.lpstrInitialDir = "Some path";
...
if(GetOpenFileName(&fileDialogSettings))
{
}
我希望将“某些路径”作为对话框中的根路径,并将导航限制为仅此文件夹及其子文件夹。我可以使用 lpfnHook 吗?
如果您仅针对 Vista+,则可以使用IFileDialogEvents::OnFolderChanging http://msdn.microsoft.com/en-us/library/bb775881(v=vs.85).aspx完全阻止更改的方法。
对于旧版本的 Windows,OpenFileDialog 允许您指定一个挂钩过程,您可以在其中选择CDN_FOLDERCHANGE http://msdn.microsoft.com/en-us/library/windows/desktop/ms646859(v=vs.85).aspx通知。
虽然我看不到任何禁止更改的消息,但您也许可以发布一条消息来告诉它“返回”,或者只是禁用“确定”按钮。
另一种选择是处理CDN_FILEOK http://msdn.microsoft.com/en-us/library/windows/desktop/ms646857(v=vs.85).aspx通知并拒绝所需目录之外的路径。
See 这篇 MSDN 文章 http://msdn.microsoft.com/en-us/library/windows/desktop/ms646960(v=vs.85).aspx#_win32_Explorer_Style_Hook_Procedures有关挂钩过程的更多详细信息。这个问题 https://stackoverflow.com/a/471398/588306还讨论了在打开的对话框中更改目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)