2010-03-18 2 views
2

У меня есть CFileDialog и установите для него фильтр (текстовые файлы * .txt).
Когда он открывается, я вижу только файлы TXT, это правильно. Но! когда я ввожу текст в имя файла, подсказка (в поле имени файла) показывает все файлы (файлы с любым расширением).

Возможно, это изменение изменилось с помощью какого-либо флага? Я хочу, чтобы подсказка силы отображала только файлы TXT.CFileDialog - Выбранный фильтр и «Подсказка», показывающий все файлы

... 
CFileDialog f(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_NOCHANGEDIR,_T("Text files (*.txt)|*.txt|All files (*.*)|*.*||")); 
if(f.DoModal() != IDOK) return; 
... 
+0

Опубликовать код. –

ответ

0

Мой опыт в том, что файл фильтра будет контролировать то, что отображается в списке файлов, но когда вы набираете автозаполнения соответствие со всем, в текущем каталоге. Я не могу придумать хороший способ доказать, что это невозможно, но я ничего не видел в документах или коде MFC, которые позволили бы вам это сделать.

Вы можете подклассифицировать CFileDialog и переопределить функцию CFileDialog :: OnFileNameOK(), чтобы отклонить запись любого имени файла, которая не соответствует вашим критериям. вы также можете получить необходимую функциональность, переопределив CFileDialog :: OnFileNameChange(), чтобы отклонить имя файла, предоставленного пользователем, прежде чем нажать кнопку «Открыть» (или «Сохранить»), но я не сделал этого сам, чтобы точно знать, как это будет разрабатывать.

Смежные вопросы