Здравствуйте Spark2K, Вы писали:
SK>Как в MMC Snap-in убрать знак плюс(+) в тех нодах у которых нет потомков? SK>Пробую в конструкторе написать: SK> m_scopeDataItem.cChildren = 0; SK> m_scopeDataItem.mask |= SDI_CHILDREN; SK>но это не дает нужного эффекта.
SK>Подскажите, кто знает.
Ответ: никак. Это особенность MMC и она подробно документирована в MSDN. Дело в том, что к твоим узлам могут подключаться другие Snap-ins и MMC ничего о них не знает, пока ты не раскроешь узел. В этот момент MMC и пытается загружать связанные Snap-ins, если они есть — узел раскрывается, если нет — удаляется знак плюс.
Как в MMC Snap-in убрать знак плюс(+) в тех нодах у которых нет потомков?
Пробую в конструкторе написать:
m_scopeDataItem.cChildren = 0;
m_scopeDataItem.mask |= SDI_CHILDREN;
но это не дает нужного эффекта.
Здравствуйте Spark2K, Вы писали:
SK>Как в MMC Snap-in убрать знак плюс(+) в тех нодах у которых нет потомков? SK>Пробую в конструкторе написать: SK> m_scopeDataItem.cChildren = 0; SK> m_scopeDataItem.mask |= SDI_CHILDREN; SK>но это не дает нужного эффекта.
попробуй после создания ноды отрефрешить эту ноду. Сейчас в далеке от сорцов —
в понедельник-вторник могу их глянуть.
SK>Подскажите, кто знает.
зы: этот пост следовало посылать или в COM/AX или в Win32 API форум ... я обычно
зверстую когда вижу засорение С++ — ного форума
* thriving in a production environment *
Re[2]: Как в MMC Snap-in убрать (+)?
От:
Аноним
Дата:
12.11.01 07:02
Оценка:
Здравствуйте Андрей, Вы писали:
А>Здравствуйте Spark2K, Вы писали:
SK>>Как в MMC Snap-in убрать знак плюс(+) в тех нодах у которых нет потомков? SK>>Пробую в конструкторе написать: SK>> m_scopeDataItem.cChildren = 0; SK>> m_scopeDataItem.mask |= SDI_CHILDREN; SK>>но это не дает нужного эффекта.
SK>>Подскажите, кто знает.
А>Ответ: никак. Это особенность MMC и она подробно документирована в MSDN. Дело в том, что к твоим узлам могут подключаться другие Snap-ins и MMC ничего о них не знает, пока ты не раскроешь узел. В этот момент MMC и пытается загружать связанные Snap-ins, если они есть — узел раскрывается, если нет — удаляется знак плюс.
см. Platform SDK Documentation\Setup and System Administration\Microsoft Management Console\MMC Snap-in Designer for Visual Basic\Changes from MMC Snap-in Designer Beta 1.
Правда я не смог в C++ сделать нечто подобное.
Re[2]: Как в MMC Snap-in убрать (+)?
От:
Аноним
Дата:
12.11.01 07:06
Оценка:
Здравствуйте Igor Soukhov, Вы писали:
IS>Здравствуйте Spark2K, Вы писали:
SK>>Как в MMC Snap-in убрать знак плюс(+) в тех нодах у которых нет потомков? SK>>Пробую в конструкторе написать: SK>> m_scopeDataItem.cChildren = 0; SK>> m_scopeDataItem.mask |= SDI_CHILDREN; SK>>но это не дает нужного эффекта. IS>попробуй после создания ноды отрефрешить эту ноду. Сейчас в далеке от сорцов - IS>в понедельник-вторник могу их глянуть.
SK>>Подскажите, кто знает. IS>зы: этот пост следовало посылать или в COM/AX или в Win32 API форум ... я обычно IS>зверстую когда вижу засорение С++ — ного форума
Прошу прощения за неточный пост.
Будет очень здорово, если бросишь кусочек сорца. Большое спасибо за ответ.
Извиняюсь за неточный ответ. Просто у Microsoft в одном месте написано одно, в другом — другое. Кстати, следующий код прекрасно работает в методе Notify:
То есть надо это делать не для m_scopeDataItem, а для узла, который нужно показать.
Re[4]: Как в MMC Snap-in убрать (+)?
От:
Аноним
Дата:
12.11.01 08:41
Оценка:
Здравствуйте Андрей, Вы писали:
SK>>>>Подскажите, кто знает.
А>>>Ответ: никак.
А>Извиняюсь за неточный ответ. Просто у Microsoft в одном месте написано одно, в другом — другое. Кстати, следующий код прекрасно работает в методе Notify:
А>
А>То есть надо это делать не для m_scopeDataItem, а для узла, который нужно показать.
Да, код работает (кроме SetHandle, но, кажется, это неважно).
У меня ситуация такая: в Scope Panel есть нода, у нее нет потомков (в Scope Panel), хотя есть элементы в Result Panel. При MMCN_SHOW в Result Panel я добавляю записи и хотел бы указать что в Scope Panel потомков не будет (убрать (+)).
Здравствуйте Аноним, Вы писали:
А>У меня ситуация такая: в Scope Panel есть нода, у нее нет потомков (в Scope Panel), хотя есть элементы в Result Panel. При MMCN_SHOW в Result Panel я добавляю записи и хотел бы указать что в Scope Panel потомков не будет (убрать (+)).
Ты элементы не в MMCN_SHOW добавляй, а в MMCN_EXPAND — я как раз так и делаю (и в примерах у Microsoft тоже).
Здравствуйте Андрей, Вы писали:
А>Здравствуйте Аноним, Вы писали:
А>>У меня ситуация такая: в Scope Panel есть нода, у нее нет потомков (в Scope Panel), хотя есть элементы в Result Panel. При MMCN_SHOW в Result Panel я добавляю записи и хотел бы указать что в Scope Panel потомков не будет (убрать (+)).
А>Ты элементы не в MMCN_SHOW добавляй, а в MMCN_EXPAND — я как раз так и делаю (и в примерах у Microsoft тоже).
элементы для Result Pane View надо добавлять в MMCN_SHOW
Здравствуйте Igor Soukhov, Вы писали:
IS>элементы для Result Pane View надо добавлять в MMCN_SHOW
Согласен, но в данном случае речь идет о Scope Pane View, а не о Result. Проблема ведь не в Result Pane View.
А флаг SDI_CHILDREN надо устанавливать при добавлении элементов в Scope, я об этом хотел сказать. Наверное, неясно выразился.
Здравствуйте Spark2K, Вы писали:
SK>Как в MMC Snap-in убрать знак плюс(+) в тех нодах у которых нет потомков? SK>Пробую в конструкторе написать: SK> m_scopeDataItem.cChildren = 0; SK> m_scopeDataItem.mask |= SDI_CHILDREN; SK>но это не дает нужного эффекта.
SK>Подскажите, кто знает.
В итоге я нашел. Для тех кто заинтересуется, вот ответ:
Перед добавлением в Scope Panel с помощью метода InsertItem(&SCOPEDATAITEM), нужно дописать пару строк. Вот они:
sdi.mask |= SDI_CHILDREN;
sdi.cChildren = 0;
В общем-то, это и написано в MSDN.