【问题标题】:Disabling change folder in CFileDialog in MFC at certain case在某些情况下禁用 MFC 中 CFileDialog 中的更改文件夹
【发布时间】:2012-09-27 08:57:21
【问题描述】:

我正在尝试重载 CFiledialog 类以根据我的需要添加功能。在某些情况下,我没有得到限制用户更改文件夹的解决方案,如下所述。

当用户尝试更改文件夹时。

  • 我需要检查是否选择了任何文件夹?
  • 如果选中,我需要检查是否有任何所选文件夹包含所需的文件?
  • 如果所选文件夹包含所需文件,那么在这种情况下,我想禁用更改文件夹功能。

我试图覆盖virtual void OnFolderChange(); 函数,但在文件夹已更改之后调用此函数。

任何建议将不胜感激!

谢谢

【问题讨论】:

  • 我想,CFiledialog 类并不是设计来做这个的,你为什么需要这个?也许有一些替代组件或策略
  • 我只需要覆盖 CFileDialog 的“打开”按钮的默认实现。如果选择了一个文件夹,我需要检查这个文件夹是否有所需类型的文件,如果是,那么它一定不能打开所选文件夹而只是关闭对话框。是否可以覆盖打开按钮处理程序的默认实现,因为我已经继承了 CFileDialog。

标签: c++ visual-c++ mfc directory visual-c++-2008


【解决方案1】:

我重写了 IDOK 的默认处理程序(即打开按钮)。与下面链接中的文章中的说明相同。

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

【讨论】:

    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2017-10-09
    • 2017-03-17
    • 2015-09-15
    • 1970-01-01
    • 2021-09-21
    相关资源
    最近更新 更多