当在文件资源管理器中我们使用 F3 搜索功能时,会生成包含特定文件(搜索结果)的ListView
。
是否有可能,如果是这样,使用Visual C ++的WinAPI小部件,有一个类似的文件浏览器ListView包含自定义文件列表(文件可能不在同一目录等)? /强>
即。一个ListView,它包含所有本机Explorer UI元素(文件名附近的小图标,右键单击打开弹出窗口,其中包含对文件执行的操作等)。
WinSpector说它是DirectUIHWND
,但是我们可以创建一个并传递一个文件数组来显示吗?
更确切地说:我知道如何在SysListView32
中显示文字项目,但如何显示文件,并在资源管理器中显示所有功能(右键单击 - >文件的上下文菜单,包括Open,Open with等,F2 - >重命名文件等),而无需重新编码所有这些数百个功能?
答案 0 :(得分:1)
Windows Vista及更早版本中的资源管理器使用标准列表视图控件,默认情况下,Window 7及更高版本使用看似列表视图的自定义控件。
在编写自己的实现之前,您应该尝试IExplorerBrowser
,特别是FillFromObject
方法。
如果您想使用列表视图,基本知识是:
SHGetFileInfo
或IExtractIcon
获取系统图片列表和每个文件的图标索引。IContextMenu
或IShellFolder
获取SHCreateDefaultContextMenu
。