C++中Common File对话框和Common Item对话框的主要区别是什么?

问题描述:

我的问题是:C++中Common File对话框和Common Item对话框的主要区别是什么?

Common File对话框和Common Item对话框之间的主要区别是什么?

的MSDN只是说:

从Windows Vista开始,用来打开或保存file.We建议您使用公用项 当通用项对话框取代了旧的 通用文件对话框Dialog API代替公用文件 Dialog API。

但它没有说明它们之间有什么变化记录或主要区别?

感谢您的帮助。

+0

GetOpenFileName()=> IFileOpenDialog。主要的“差异”是从C风格的API到COM API。一个很大的区别。但是一个重大的改进。 – 2014-11-21 11:34:54

+0

@HansPassant:感谢您的评论。你看到我更新的帖子了吗? http://stackoverflow.com/questions/26817372/tooltip-coloring-doesnot-work – 2014-11-21 12:47:25

通用文件对话框只是一个自定义的DialogBog。另一方面,Common Item对话框是一个完整的COM服务器。

微软的文档说:

将在Windows Vista中常见项对话框实现了早期版本中提供的实现提供了几个优点:

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

简单来说,使用简单的低级别的Win32程序很难。

+0

谢谢,+1投票给你。 – 2014-11-21 12:48:21