Как запретить IFileDialog добавлять шаблон подстановки в описание типа файла? - PullRequest
0 голосов
/ 22 мая 2011

В новых версиях Windows (по крайней мере, в Windows 7, но у меня есть основания полагать, что это происходит в Vista с) IFileDialog (и, следовательно, IFileOpenDialog и IFileSaveDialog) автоматически добавляет шаблон подстановочного знака в файлописание типа, если они не найдены.

Это хорошая функция, облегчающая использование, повышая согласованность и соблюдение правил.Но иногда это не желательно.Если допустимых расширений много (например, «Все изображения»), то соответствующая запись в комбинированном списке слишком длинная.Хуже всего то, что это даже не задокументировано, и я нашел только примечание об этом (подтверждающее мои наблюдения) в статье CodeProject .

В Windows 7 проверка обратной совместимости (как упомянуто Статья CodeProject ) не так сильна, и кажется, что любые шаблоны, добавленные вручную в описание, будут препятствовать автоматическому добавлению.На это уже указывал ответ на другой вопрос .И все же это решение далеко от идеального.(Я решил снова задать тот же вопрос, так как считаю, что предыдущий был плохо помечен и описан: (1) Сначала я нашел его, посмотрев похожие вопросы, предложенные StackOverflow, мои предыдущие запросы в Google не делали 'не нашел его и (2) проблема носит общий характер и не ограничивается только Delphi.)

Как это предотвратить?

Обратите внимание, что я должен использовать IFileDialog, потому что мне нужны его настройкипредложения.(Таким образом, переключение в диалоговое окно, создаваемое GetOpenFileName и GetSaveFileName, не вариант.)

1 Ответ

0 голосов
/ 23 мая 2011

Ну, MSDN упоминает IFileDialog. SetFilter устарел для Windows 7. В этом случае, я думаю, вам придется использовать IFileDialog. SetFileTypes для установки шаблонов расширений файлов.Поскольку вы говорите, что подстановочный знак уже существует, ответ заключается в перезаписи шаблонов расширений с помощью одной из этих двух функций.

Нет примера кода из-за отсутствия языкового тега.Ссылка на SetFileTypes показывает довольно хороший пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...