2017-06-30 23 views
0

当在文件浏览器中我们使用F3搜索功能,这将生成一个ListView其中包含某些文件(搜索结果)。资源管理器风格的ListView其中包含文件的自定义列表

enter image description here

是否有可能,如果是与使用Visual C++,有一个包含文件的自定义列表(文件可能无法在同一目录等类似的文件资源管理器中的ListView WinAPI的小部件。)?

即它具有所有的本地浏览器的UI元素一个ListView(文件名附近的小图标,点击右键打开用行动做上的文件的弹出等)

WinSpector说,这是DirectUIHWND,但可我们创建一个并传递一组文件以显示在其中?

更准确地说:我知道如何在SysListView32显示文本的项目,但如何显示文件,并已全部在资源管理器中提供的功能(右键 - >的文件上下文菜单,以开放,开放与,等 - ,F2 - >重命名文件等),而不必重新编码所有这些数百个功能?

+0

创建一个列表视图控件,并把它放在里面。 'DirectUIHWND'是包装系统列表视图控件的私有MS控件。您应该使用系统列表视图控件。知道这里的问题有点困难。您似乎在问,“是否可以在列表视图中显示内容”。这是平凡的回答。 –

+0

感谢您的评论@DavidHeffernan。我知道如何在SysListView32中显示文本项目,但我的问题是:如何显示*文件*,并具有在资源管理器中可用的所有功能(右击 - >文件的上下文菜单,打开,打开等)。 ,F2 - >重命名文件等)直接在'ListView'中,而不必重新编码所有这些数百个功能。 – Basj

+1

这是一个非常广泛的问题。有很多例子只是一个网络搜索,演示了如何做到这一点。 –

回答

1

Windows Vista及更早版本中的资源管理器使用标准的listview控件,默认情况下,Window 7及更高版本使用类似于listview的自定义控件。

在编写自己的实现之前,您应该尝试IExplorerBrowser,特别是FillFromObject方法。

如果你想使用一个列表视图,基本是:

+0

谢谢你的回答@安德斯。我不一定需要一个'SysListView32',我只想使用最简单的方法来获得所有浏览器样式的功能,而不必重新编写它们。所以看来我应该更好地使用'IExplorerBrowser'?你认为我可以用数十万个文件填充它吗? (例如:之前索引的硬盘驱动器的所有JPG文件,等等) – Basj

+0

IExplorerBrowser使用与资源管理器相同的自定义控件,它可能是内部相同的实现,因此性能应该与在资源管理器中搜索所有.jpg文件相同。 – Anders

+0

...并且在正常的外壳时尚中,并非所有内容都被记录在案,因此IExplorerBrowser无法正确使用接管整个窗口IIRC的花式控制面板项目。 – Anders

相关问题