0

ビューモードとしてFVM_AUTO(-1)フラグを指定したIShellViewインスタンスを使用しています。つまり、エクスプローラーは、表示されたフォルダーのコンテンツに適合するビュースタイルを選択する必要があります。これは、サムネイルなどの詳細以外のビュースタイルで列ヘッダーが表示されるという事実を除いて、正常に機能します。

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を設定しても何も変更されません。

ありがとう

4

1 に答える 1

0

この動作はバグのようで、MS Connectで報告されています

MS サポートからの追加情報:
フォルダーはビューを制御します。CreateViewWindow に渡す値は単なる提案です。ほとんどの場合、これらの提案は尊重されますが、フォルダーは技術的にそれらを無視することが許可されています。

特に、このケースは、Windows XP との互換性に関する提案を上書きします。IShellView3::CreateViewWindow3 を使用する場合、この互換性の動作は適用されず、フラグをより適切に尊重する必要があります。SV3CVW3_FORCEFOLDERFLAGS フラグを使用して、提案をより強調することができます。

--> ForceFolderFlags フラグを指定して IShellView3.CreateViewObject3 を使用する

于 2012-08-08T14:33:33.090 に答える