2012-05-30 66 views
2

我对SHBrowseForFolder()有一些疑问。我使用BIF_USENEWUI,BIF_RETURNONLYFSDIRSBIF_VALIDATE。我主要在编辑框有问题。我希望它的功能有点不同。SHBrowseForFolder文本编辑

  1. 让我们假设,我在一个有效的目录"C:\path"。如果我在文本框中输入一个不存在的文件夹(我们称之为"Folder1"),然后按OK,那么我收到的路径是"C:\path"。有没有办法让它,以便当我按下确定,它创建"Folder1""C:\path"并给我路径"C:\path\Folder1"? (无需使用“新建文件夹”按钮)

  2. 目前,我可以单击"Make New Folder",它会创建一个可以重命名的新文件夹。在文本编辑中,它显示为新建文件夹(默认名称)。重命名文件夹后,文本编辑中它仍然显示为新文件夹,除非我单击另一个文件夹,然后再单击新命名的文件夹。是否有一种方法可以在我重命名文件夹后立即更新文本编辑?

回答

1

1安装一个应用程序定义的回调函数,并指定BIF_VALIDATE标志,那么处理BFFM_VALIDATEFAILED,设法在那里创建文件夹。

2你也可以继承的对话和BFFM_INITIALIZED文本编辑和查找树要控制TVN_BEGINLABELEDIT和TVN_ENDLABELEDIT,然后更改基础上,改变树节点的文本,当用户完成编辑的编辑控件中的文本。浏览文件夹对话框上控件的对话框ID没有记录,因此存在需要考虑的兼容性风险。如果您的代码在Windows更新/升级后中断,我不会感到惊讶,但作为用户,这不是我会错过的功能。