Отключение папки изменения в CFileDialog в MFC в определенном случае

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

Когда пользователь пытается изменить папку.

  • Мне нужно проверить, выбрана ли там какая-либо папка или нет?
  • Если выбрано, мне нужно проверить, содержит ли какая-либо из выбранных папок нужный файл или нет?
  • Если в выбранной папке есть нужный файл, то в таком случае я хочу отключить функцию смены папки.

Я пытался переопределить функцию virtual void OnFolderChange();, но вызов этой функции происходит после того, как папка уже изменена.

Любое предложение будет принято с благодарностью!

Спасибо


person Vivek Kumar    schedule 06.10.2012    source источник
comment
Я думаю, класс CFiledialog не предназначен для этого, зачем вам это нужно? Может быть есть какой-то альтернативный компонент или статгия   -  person Albertino80    schedule 07.10.2012
comment
Мне просто нужно переопределить реализацию по умолчанию кнопки «Открыть» CFileDialog. Если выбрана папка, мне нужно проверить, есть ли в этой папке файл нужного типа или нет. Если да, то он не должен открывать выбранную папку и просто закрывает диалог. Можно ли переопределить реализацию по умолчанию обработчика кнопки «Открыть», поскольку я создал подкласс CFileDialog.   -  person Vivek Kumar    schedule 08.10.2012


Ответы (1)


Я переопределил обработчик по умолчанию для IDOK (например, кнопку «Открыть»). То же, что описано в статье по ссылке ниже.

http://www.codeguru.com/cpp/controls/toolbar/miscellaneous/article.php/c5497/Adding-Toolbar-button-in-CFileDialog.htm

person Vivek Kumar    schedule 09.10.2012