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

时间:2014-11-21 10:08:51

标签: c++ windows

我的问题是:

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

MSDN刚才说:

  

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

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

微软的文档说:

Windows Vista中的Common Item Dialog实现与早期版本中提供的实现相比具有以下优点:

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

简单地从简单的低级Win32程序中使用它就更难了。