1

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

4

1 に答える 1

1

あなたの質問から理解したように、リストビューで表示するには同じコンテンツが必要ですが、新しいビューで表示されます。

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

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

于 2009-08-03T14:15:45.817 に答える