Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 包含自定义文件列表的资源管理器样式列表视图_C++_Windows_Listview_Winapi_Explorer - Fatal编程技术网

C++ 包含自定义文件列表的资源管理器样式列表视图

C++ 包含自定义文件列表的资源管理器样式列表视图,c++,windows,listview,winapi,explorer,C++,Windows,Listview,Winapi,Explorer,在文件资源管理器中使用F3搜索功能时,会生成一个包含特定文件(搜索结果)的ListView 是可能的,如果是这样,使用VisualC++的WiAPI小部件,有一个类似的文件资源管理器ListVIEW,包含一个自定义的文件列表(文件可能不在同一目录中)?< > /p> i、 e.具有所有本机Explorer UI元素的ListView(文件名附近的小图标,右键单击打开一个弹出窗口,其中包含对文件执行的操作等) WinSpector说它是DirectUIHWND,但是我们可以创建一个并传递一个

在文件资源管理器中使用F3搜索功能时,会生成一个包含特定文件(搜索结果)的
ListView

<强>是可能的,如果是这样,使用VisualC++的WiAPI小部件,有一个类似的文件资源管理器ListVIEW,包含一个自定义的文件列表(文件可能不在同一目录中)?< <强> > /p> i、 e.具有所有本机Explorer UI元素的ListView(文件名附近的小图标,右键单击打开一个弹出窗口,其中包含对文件执行的操作等)

WinSpector说它是DirectUIHWND,但是我们可以创建一个并传递一个文件数组来显示它吗


更准确地说:我知道如何在
SysListView32
中显示文本项,但知道如何显示文件,以及如何在资源管理器中提供所有功能(右键单击->文件上下文菜单,使用打开、使用打开等,F2->重命名文件等)无需重新编码所有这数百项功能即可直接使用?

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

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

如果要使用listview,基本功能包括:

  • 使用或
    iextractcon
    获取每个文件的系统映像列表和图标索引
  • 需要时,从
    IShellFolder
    SHCreateDefaultContextMenu
    获取
    IContextMenu

创建一个列表视图控件,并在其中放入您喜欢的内容
DirectUIHWND
是一个私有MS控件,用于包装系统列表视图控件。您应该使用系统列表视图控件。要知道这里的问题有点难。您似乎在问,“是否可以在列表视图中显示内容”。这是一个简单的肯定回答。谢谢你的评论@DavidHeffernan。我知道如何在SysListView32中显示文本项,但我的问题是:如何显示文件,以及如何在资源管理器中提供所有功能(右键单击->文件上下文菜单,打开、打开等,F2->重命名文件等)直接在
列表视图中
,而无需重新编码所有这数百个功能。这是一个非常广泛的问题。还有很多例子,仅仅是一个网络搜索就可以演示如何做到这一点。谢谢你的回答@Anders。我不一定想要一个
SysListView32
,我只想使用最简单的方法来拥有所有浏览器样式的功能,而不必重新编码它们。因此,我似乎应该更好地使用
IExplorerBrowser
?你认为我能用数十万个文件来填充它吗?(例如:我以前索引过的硬盘上的所有JPG文件等)IExplorerBrowser使用与Explorer相同的自定义控件,它在内部可能是相同的实现,因此性能应该与在Explorer中搜索所有.JPG文件相同…并且以正常的shell方式,并非所有内容都有文档记录,因此IExplorerBrowser无法正确处理占据整个窗口IIRC的奇特控制面板项。谢谢!(在你最后的评论中,什么是奇特的控制面板项目案例?我不知道哪一个案例不起作用)@DavidHeffernan否?至少在我的Windows 8计算机上没有。该树使用SysTreeView32,但没有listview。它只是去…->SHELLDLL_deView(由IShellView/IShellFolder创建的窗口)->DirectUIHWND(文件列表)->CtrlNotifySink->ScrollBar。您可以使用注册表设置使Windows 7像Vista一样运行并使用listview,但默认情况下不使用它。