我們需要在IFileDialogControlEvents :: OnButtonClicked的活動Vista/Win7打開文件對話框中更改選定的文件類型過濾器。 IFileDialog :: SetFileTypeIndex更新組合框中的文本,但項目列表未刷新,這意味着項目不再反映「文件類型」組合框中的內容。刷新IFileDialog視圖
我們嘗試過各種方式來刷新視圖,但沒有成功。有沒有人有一種技術來做到這一點?
一個可能的線索:即使手動單擊刷新按鈕也不刷新視圖,這導致我們相信公共對話框中的內部值可能不會被IFileDialog :: SetFileTypeIndex更新。還有什麼我們需要做的嗎?
更新:事實證明,以IFileDialog :: GetFileTypeIndex的後續調用不返回我們使用SetFileTypeIndex剛剛成立的指數,即使組合框顯示正確的過濾器。這讓我更加想到IFileDialog中有一些內部值,如果對話框已經打開,它不會被SetFileTypeIndex更新。
更新: 這是一個Windows錯誤。請參閱下面的解決方法代碼。
你可以發佈min sample repro這個行爲嗎? – 2009-09-26 15:17:34
在對話框打開之後,任何對IFileDialog :: SetFileTypeIndex的使用都會導致這種行爲。它更新控件中顯示的過濾器,但不更新由GetFileTypeIndex返回的索引號,並且不刷新顯示。 MS已經證實這是Vista和Win7 RTM中的一個錯誤。請參閱 – chrisd 2009-10-02 17:53:43