我对SHBrowseForFolder()
有一些疑问。我将其与BIF_USENEWUI
,BIF_RETURNONLYFSDIRS
和BIF_VALIDATE
一起使用。我主要是编辑框有问题。我希望它的功能有点不同。
我们假设,我在一个有效的目录"C:\path"
。如果我在文本框中键入一个不存在的文件夹(我们称之为"Folder1"
),然后按确定,则我收到的路径为"C:\path"
。有没有办法让它按下OK,它会在"Folder1"
中创建"C:\path"
并给我路径"C:\path\Folder1"
? (无需使用“创建新文件夹”按钮)
目前,我可以点击"Make New Folder"
,这会创建一个我可以重命名的新文件夹。在文本编辑中,它显示为“新建文件夹”(默认名称)。重命名文件夹后,它仍然在文本编辑中显示为新文件夹,除非我单击另一个文件夹,然后单击新命名的文件夹。有没有办法在重命名文件夹后立即更新文本编辑?
答案 0 :(得分:1)
1安装应用程序定义的回调函数并指定BIF_VALIDATE标志,然后处理BFFM_VALIDATEFAILED并尝试在那里创建文件夹。
2您可以在BFFM_INITIALIZED中对对话框和文本进行子类化,并从树控件中查找TVN_BEGINLABELEDIT和TVN_ENDLABELEDIT,然后在用户完成编辑时根据对树节点文本的更改来更改编辑控件中的文本。未记录浏览文件夹对话框上控件的对话框ID,因此存在您需要考虑的兼容性风险。如果您的代码在Windows更新/升级后中断,我不会感到惊讶,但作为用户,这不是我想念的功能。