我创建了一个类似于 Google 的 GDrive 的 Windows Shell 扩展。现在我想向继承自 IShellView 的 ListView 添加不同的视图。添加了一个新的上下文菜单以显示 3 个视图(详细信息、小图标、大图标)。当使用上下文菜单更改视图时,需要刷新/创建当前窗口以显示更改后的视图。在我的 IShellFolder::EnumObjects 中,创建了一个新的 ListView 对象并自动调用 OnCreate。当我使用上下文菜单更改视图时,我也需要调用此方法。我想可能有一些像 SHChangeNotify() 这样的 API 可以自动所有 EnumObjects() 并且将使用更改后的视图创建一个新的 IShellView 窗口。
问问题
563 次
1 回答
1
正如我从您的问题中了解到的那样,您需要在列表视图中查看相同的内容,但使用新视图。
选择新的视图模式后不需要重新创建 Listview 对象,只需将 ListView 的样式设置为LVS_REPORT、LVS_SMALLICON或LVS_ICON。
SHChangeNotify用于将更改反映到树窗格而不是 ListView。
于 2009-08-03T14:15:45.817 回答