如何使用 IFileOpenDialog 打开 *modal* 文件对话框?

索森宾德

一段时间以来,我一直在尝试在我的 C++ 应用程序中实现文件对话框,并且我使用本文中描述的代码取得了很好的成功(它是德语,但代码应该可以理解):

https://msdn.microsoft.com/de-de/library/windows/desktop/ff485843(v=vs.85).aspx

但是,在我的窗口类中使用此代码,它是一个 CDialogImpl,我就是不知道如何使这个文件选择器模式化。如果我使用此代码,我可以生成多个文件选择器。

当然,我可以通过添加一个表示状态的成员变量来跟踪状态,但它仍然无法解决在打开对话框时能够在主窗口中单击的问题。

有什么方法可以让我将此窗口设为模态?我一直在尝试扫描所有可用的方法,但找不到任何东西。我没有找到任何可以在创建中传递的标志,也没有找到我可以在创建后设置的任何选项。

任何帮助表示赞赏!

大卫·赫弗南(David Heffernan)

您链接到的示例非常简单,除了文件对话框之外没有其他 UI。您的程序更复杂,有一个窗口,从中可以调用文件对话框。

您需要为文件对话框提供所有者。当你这样做时,所有者被禁用,这是使对话框模式化的部分原因。未能通过所有者意味着其他窗口没有被禁用,因此仍然响应用户输入。

示例代码没有提供所有者,但由于该程序中没有其他窗口,这是良性的。模态只有在有多个窗口时才有意义。

因此,要解决此问题,请将窗口的所有者(窗口句柄)传递给Show文件对话框方法。

禁用所有者窗口是模态对话框的关键部分之一。您会发现任何用于模式对话框的API都希望您指定所有者。养成期望提供自己的窗口的习惯,并寻找这样做的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用“打开文件”对话框打开文件

来自分类Dev

使用“ for”属性打开文件对话框

来自分类Dev

如何防止“如何打开此文件”对话框?

来自分类Dev

如何显示“现代”打开文件对话框?

来自分类Dev

创建要多次使用的打开文件对话框功能

来自分类Dev

如何使Notepad ++使用“ .txt”文件作为默认的打开文件对话框过滤器?

来自分类Dev

使用JavaScript按钮打开对话框

来自分类Dev

Intellij,键入层次结构对话框,如何使用键盘打开文件?

来自分类Dev

如何打开“保存”对话框,而不是在我的Sharepoint网站的浏览器中打开文件

来自分类Dev

Chocolatey无法安装应用程序,“您如何打开此文件?” 而是打开对话框

来自分类Dev

在Delphi 10.3中使用预览打开文件打开对话框

来自分类Dev

在VsCode中使用Windows文件对话框打开文件/文件夹

来自分类Dev

如何在VB.net的“打开文件”对话框中包含消息框

来自分类Dev

NativeScript:如何打开文件对话框以从手机中选择文件

来自分类Dev

如何在Mac OS文件打开对话框中剪切/粘贴文件路径?

来自分类Dev

如何在OS X的“打开文件”对话框中显示所有文件?

来自分类Dev

使用python自动从Windows文件对话框中打开文件

来自分类Dev

绑定文件->使用GUI对话框打开文件到Co作为全局设置键

来自分类Dev

打开文件对话框,然后使用WPF控件和Ironpython选择文件

来自分类Dev

Python:使用打开文件对话框将文件分配给变量?

来自分类Dev

操作使用“打印到pdf”选项打开的文件对话框的“文件名”

来自分类Dev

打开文件对话框,然后使用WPF控件和Ironpython选择文件

来自分类Dev

从组件外部触发打开全屏对话框工作,打开时如何关闭对话框

来自分类Dev

如何使用AJAX请求打开jQuery UI对话框?

来自分类Dev

如何使用ActionBar将活动打开为对话框

来自分类Dev

如何使用文件管理器文件打开对话框从网络共享中选择文件

来自分类Dev

如何使用文件管理器文件打开对话框从网络共享中选择文件

来自分类Dev

仅使用键盘在gEdit中使用打开文件对话框

来自分类Dev

如何在不打开/保存对话框的情况下播放Telerik RadCaptcha .wav文件

Related 相关文章

  1. 1

    如何使用“打开文件”对话框打开文件

  2. 2

    使用“ for”属性打开文件对话框

  3. 3

    如何防止“如何打开此文件”对话框?

  4. 4

    如何显示“现代”打开文件对话框?

  5. 5

    创建要多次使用的打开文件对话框功能

  6. 6

    如何使Notepad ++使用“ .txt”文件作为默认的打开文件对话框过滤器?

  7. 7

    使用JavaScript按钮打开对话框

  8. 8

    Intellij,键入层次结构对话框,如何使用键盘打开文件?

  9. 9

    如何打开“保存”对话框,而不是在我的Sharepoint网站的浏览器中打开文件

  10. 10

    Chocolatey无法安装应用程序,“您如何打开此文件?” 而是打开对话框

  11. 11

    在Delphi 10.3中使用预览打开文件打开对话框

  12. 12

    在VsCode中使用Windows文件对话框打开文件/文件夹

  13. 13

    如何在VB.net的“打开文件”对话框中包含消息框

  14. 14

    NativeScript:如何打开文件对话框以从手机中选择文件

  15. 15

    如何在Mac OS文件打开对话框中剪切/粘贴文件路径?

  16. 16

    如何在OS X的“打开文件”对话框中显示所有文件?

  17. 17

    使用python自动从Windows文件对话框中打开文件

  18. 18

    绑定文件->使用GUI对话框打开文件到Co作为全局设置键

  19. 19

    打开文件对话框,然后使用WPF控件和Ironpython选择文件

  20. 20

    Python:使用打开文件对话框将文件分配给变量?

  21. 21

    操作使用“打印到pdf”选项打开的文件对话框的“文件名”

  22. 22

    打开文件对话框,然后使用WPF控件和Ironpython选择文件

  23. 23

    从组件外部触发打开全屏对话框工作,打开时如何关闭对话框

  24. 24

    如何使用AJAX请求打开jQuery UI对话框?

  25. 25

    如何使用ActionBar将活动打开为对话框

  26. 26

    如何使用文件管理器文件打开对话框从网络共享中选择文件

  27. 27

    如何使用文件管理器文件打开对话框从网络共享中选择文件

  28. 28

    仅使用键盘在gEdit中使用打开文件对话框

  29. 29

    如何在不打开/保存对话框的情况下播放Telerik RadCaptcha .wav文件

热门标签

归档