2009-04-08 11 views
1

GoogleのGDriveに似たWindowsシェル拡張を作成しました。 IShellViewから継承したListViewに異なるビューを追加したいと思います。新しいコンテキストメニューが追加され、3つのビュー(詳細、スモールアイコン、ラージアイコン)を表示します。コンテキストメニューを使用してビューを変更すると、変更されたビューを表示するために現在のウィンドウを更新または作成する必要があります。 私のIShellFolder :: EnumObjectsでは、新しいListViewオブジェクトが作成され、OnCreateが自動的に呼び出されます。コンテキストメニューを使ってビューを変更するときに、このメソッドを呼び出す必要があります。私は、すべてのEnumObjects()を自動的に行うことができるSHChangeNotify()のようなAPIがあり、変更されたビューで新しいIShellViewウィンドウが作成されると思います。シェル拡張の外部でIShellFolder :: EnumObjectsを呼び出す方法

答えて

1

あなたの質問から理解したように、あなたは同じ内容をlistviewで見ることができますが、新しい視点で見る必要があります。

あなただけLVS_REPORTLVS_SMALLICON、またはLVS_ICONにListViewコントロールのスタイルを設定し、新しいビューモード選択後にリストビューのオブジェクトを再作成する必要はありません。

SHChangeNotifyリストビューではなくツリーペインへの変更を反映するために使用されます。