Программный вызов диалогов настройки

0 голосов
спросил 26 Янв, 09 от -3A- (5,220 баллов) в категории Программные продукты Esri
Всем доброго времени суток!

Как из своего приложения через ArcObjects вызвать диалог настроек слоя?
Какие интерфейсы за это отвечают?

Никак не могу найти в документации image

2 Ответы

0 голосов
ответил 26 Янв, 09 от -3A- (5,220 баллов)
Как вызывать диалог настроек, я нашел :)

Но после этого возникла другая проблема: в моем варианте в окне гораздо больше закладок, чем для того же слоя в ArcGIS. Как правильно определить набор закладок?

Код представлен ниже:

IComPropertySheetPtr ps(CLSID_ComPropertySheet);
ps->Title = L"Свойства слоя";

// pLayer - это указатель на интерфейс типа IGeoFeatureLayer
//
ISetPtr set(CLSID_Set);
set->Add(pLayer);

return (ps->EditProperties(set, (OLE_HANDLE)hwndParent) == VARIANT_TRUE) ? S_OK : S_FALSE;
0 голосов
ответил 27 Янв, 09 от -3A- (5,220 баллов)
разобрался и с этим тоже.


IComPropertySheetPtr ps(CLSID_ComPropertySheet);
ps->Title = L"Свойства слоя";

ISetPtr set(CLSID_Set);
set->Add(GetILayer());
set->Reset();

ps->ClearCategoryIDs();

// вот оно - предопределенный набор закладок для слоя
// блин, в ESRI могли бы для UIDов и разбор ProgID сделать
// чтобы не выискивать GUIDы по реестру
IUIDPtr uid(CLSID_UID);
uid->Value = L"{1476c782-6f57-11d2-a2c6-080009b6f22b}";
ps->AddCategoryID(uid);

ps->EditProperties(set, hwndParent);


так что пока вопросы сняты :)
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...