【问题标题】:what is the main difference between Common File Dialog and Common Item Dialog in c++?c++中通用文件对话框和通用项对话框的主要区别是什么?
【发布时间】:2014-11-21 10:08:50
【问题描述】:

我的问题是:

Common File Dialog 和 Common Item Dialog 的主要区别是什么?

MSDN 刚刚说:

从 Windows Vista 开始,通用项对话框取代了 用于打开或保存文件时的旧通用文件对话框。我们建议 您使用 Common Item Dialog API 而不是 Common File 对话框 API。

但它没有解释它们之间的更改日志或主要区别是什么?

感谢您的帮助。

【问题讨论】:

  • GetOpenFileName() => IFileOpenDialog。主要的“区别”是从 C 风格的 api 到 COM api。很大的不同。但有重大改进。
  • @HansPassant:感谢您的评论。你看到我更新的帖子了吗? stackoverflow.com/questions/26817372/…
  • @HansPassant 你的评论让我很好奇,COM api 如何/为什么比 C 风格的 api 更好?

标签: c++ windows


【解决方案1】:

Common File Dialog 只是一个自定义的 DialogBog。另一方面,Common Item Dialog 是一个完整的 COM 服务器。

微软的文档说:

Windows Vista 中的通用项对话框实现与早期版本中提供的实现相比具有几个优点:

  • 支持通过 IShellItem 直接使用 Shell 命名空间,而不是使用文件系统路径。
  • 启用简单的对话框自定义,例如在“确定”按钮上设置标签,而无需挂钩过程。
  • 通过添加一组无需 Win32 对话框模板即可运行的数据驱动控件,支持更广泛的对话框自定义。这种定制方案将调用过程从 UI 布局中解放出来。由于对对话框设计的任何更改都会继续使用此数据模型,因此对话框实现不会与对话框的特定当前版本绑定。
  • 支持对话框内事件的调用者通知,例如选择更改或文件类型更改。还使调用进程能够挂钩对话框中的某些事件,例如解析。
  • 引入了新的对话框功能,例如将呼叫者指定的地点添加到地点栏。
  • 在“保存”对话框中,开发人员可以利用 Windows Vista Shell 的新元数据功能。

只是简单的低级 Win32 程序更难使用。

【讨论】:

    猜你喜欢
    • 2016-11-08
    • 1970-01-01
    • 2016-06-10
    • 2022-09-25
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多