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