2012-05-30 65 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更新/升級後中斷,我不會感到驚訝,但作爲用戶,這不是我會錯過的功能。