W jaki sposób wyliczenia elementy podrzędne obiektu przystawki?

Aby poprawnie wyświetlić zawartość obiektu przystawki, należy wyliczyć elementy podrzędne obiektu, jeśli takie istnieją. Najlepsze miejsce dla tej zmiany jest w metodzie Powiadom klasie danych przystawki (w tej dyskusji, CSnapNameData ).

Uwaga   Klasa przystawki danych pochodzi od CSnapInItemImpl.

Domyślnie kreator obiektu ATL tworzy program obsługi dla tego powiadomienia. W tej obsługi, trzeba zmodyfikować istniejące switch instrukcji obsługi MMCN_EXPAND i MMCN_SHOW powiadomienia.

Obsługa powiadomienie MMCN_EXPAND

MMCN_EXPAND powiadomienie jest wysyłane, kiedy folderu przystawki obiekt musi zostać rozwinięte lub przejęła. W takim przypadku należy tylko wylicz elementy okienko zakresu. Tego wyliczenia odbywa się w case oświadczenie o powiadomienie MMCN_EXPAND.

Aby wstawić elementy panelu zakresu, najpierw pobrać IConsoleNameSpace interfejsu dla obiektu przystawki, a następnie wywołać Użyj metody InsertItem metody. Poniższy kod demonstruje pobierania niezbędnych interfejsów

 CComQIPtrlt, IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: Wyliczanie zakres okienku elementy z funkcja zdefiniowana przez użytkownika

Obsługa powiadomienie MMCN_SHOW

MMCN_SHOW powiadomienie jest wysyłane, gdy element jest zaznaczony lub de-selected po raz pierwszy. Tego wyliczenia odbywa się w case oświadczenie o powiadomienie MMCN_SHOW . W przeciwieństwie do powiadamiania MMCN_EXPAND musi wyliczyć wynik okienku elementy i zakres okienku elementy.

Po pierwsze, wylicz elementy zakres pobierając IConsoleNameSpace interfejsu dla przystawki obiektu, a następnie wywołania Użyj metody InsertItem metody. Po zostały wyliczone elementy panelu zakresu, czy taki sam wynik okienku elementy, pobierając IResultData interfejsu i transmisją do Użyj metody InsertItem.

CComQIPtrlt, IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: Wyliczanie zakres okienku elementy z funkcja zdefiniowana przez użytkownika
CComQIPtr < IResultData & IID_IResultData > spResultData(pConsole);
/ / TODO: wylicz elementy okienko wyników z funkcja zdefiniowana przez użytkownika

Index