使用CFileDialog作爲打開的文件,我需要允許用戶只選擇一個顯示在對話框列表區域中的文件,比如點擊它。我們不希望用戶能夠在「文件名」控件中輸入名稱。 OPENFILENAME(OFN)結構有幾個不同的標誌(http://msdn.microsoft.com/en-US/library/ms646839%28v=vs.80%29.aspx),但我沒有看到阻止用戶鍵入文件名的標誌。MFC CFileDialog只打開選擇文件
我看到的最接近的東西是OFN_FILEMUSTEXIST,但只指定該文件存在;它仍然允許用戶鍵入一個名字。
有沒有辦法做到這一點,而不繼承一個新的類?
更多信息
我們需要防止它們在文件名輸入,因爲他們可以打開一個不恰當的。使用lpszFilter
參數,我們過濾文件名,使其僅在文件名(不是擴展名)中顯示ABC的文件。所以如果他們輸入文件名,他們可以輸入類似myCoolFileDEF.ext
。如果該文件存在,它將繼續並讓它們打開它(即使它們只打開文件名爲ABC的文件,該對話框將不會關閉錯誤消息)。
我同意 - 你打敗了我的答案,但!通過在*文件名提示符之後放置驗證邏輯*,您還可以重用它,例如驗證命令行中提供的文件名或通過拖放操作。 – 2013-04-11 07:09:58