我使用带有FVM_AUTO(-1)标志的IShellView实例作为视图模式。这意味着资源管理器应该选择适合所显示文件夹内容的视图样式。 这种方法很好,除了事实上,对于除了Details之外的viewstyle,列标题是可见的,例如缩略图。
IShellView对象和视图窗口的创建方式如下:
ShellFolder1.CreateViewObject(this.Handle,
ref IID_IShellView,
out shellViewObject));
IShellView shellView = shellViewObject as IShellView;
FolderSetting folderSettings = new FolderSetting();
folderSettings.ViewMode = (int)View; // view is FVM_AUTO = -1
folderSetting.FolderFlags = FolderFlags.NoClientEdge
| FolderFlags.ExtendedTiles
| FolderFlags.AutoArrange
// only columnheaders for view mode details
| FolderFlags.NoHeaderInAllViews;
shellView.CreateViewWindow(oldView, ref folderSettings, isb,
ref rect, ref m_ShellViewHandle);
可在此处找到可用文件夹标记列表:http://msdn.microsoft.com/en-us/library/bb762508(VS.85).aspx
如何告诉视图应该仅在自动查看模式下为“详细信息”显示列标题?设置FolderFlags.NoColumnHeader不会改变任何内容。
由于
答案 0 :(得分:0)
此行为似乎是一个错误,并在MS connect
上报告 来自MS支持的其他信息:
该文件夹控制视图。传递给CreateViewWindow的值仅仅是建议。在大多数情况下,这些建议都得到了尊重,但技术上允许文件夹忽略它们。
特别是,这种情况会覆盖与Windows XP兼容的建议。如果您使用IShellView3 :: CreateViewWindow3,则此兼容性行为不适用,并且应更好地遵守标志。 您可以使用SV3CVW3_FORCEFOLDERFLAGS标志来强调您的建议。
- >将IShellView3.CreateViewObject3与ForceFolderFlags标志一起使用