Проблема с созданием окна с произвольным контентом

Автор maksim krotov, 10.01.26, 10:41:58

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

maksim krotov

Я пытался создать окно с произвольным контентом:
IApplication application = Marshal.GetActiveObject("KOMPAS.Application.7") as IApplication;
IPartDocument partDoc = (IPartDocument)application.Documents.Add(Kompas6Constants.DocumentTypeEnum.ksDocumentPart);

IApplicationDialogs applicationDialogs = application as IApplicationDialogs;

IDocumentFrame documentFrame = partDoc.DocumentFrames[0];

ContentDialogParam contentDialogParam (ContentDialogParam)applicationDialogs.GetDialogParam(Kompas6Constants.KompasAPIObjectTypeEnum.ksObjectContentDialogParam);
contentDialogParam.Title = "ОКНО С ПРИЗВОЛЬНЫМ СОДЕРЖИМЫМ";
contentDialogParam.Width = 300;
contentDialogParam.Height = 300;
contentDialogParam.Resizable = false;

applicationDialogs.ShowContentDialog(documentFrame.GetHWND(), contentDialogParam);

При запуске программы выдает ошибку System.Runtime.InteropServices.COMException

При этом, когда я пытаюсь создать, к примеру, окно для выбора цвета, все нормально и исключения не выбрасываются:

IApplication application = Marshal.GetActiveObject("KOMPAS.Application.7") as IApplication;
IPartDocument partDoc = (IPartDocument)application.Documents.Add(Kompas6Constants.DocumentTypeEnum.ksDocumentPart);

IApplicationDialogs applicationDialogs = application as IApplicationDialogs;

IDocumentFrame documentFrame = partDoc.DocumentFrames[0];

applicationDialogs.SelectColor(documentFrame.GetHWND(), "Заголовок", 1);


Что я делаю не так?

p3452

1. Ваш код - рабочий (ошибки быть не должно - смотрите настройки среды).
2. Сама функция ShowContentDialog() - не рабочая (v20) - если у кого работает, поделитесь "опытом"..!
3. Оконные функции API - "черное пятно" на репутации разработчиков API - "маленький" примерчик в качестве иллюстрации:
ДиалоговыеОкна.png

Красным помеченны - работающие некоректно, желтым - не всегда работающие корректно...
+ Благодарностей: 1

Kolos

ShowContentDialog создавать пытается, подписываюсь на события ksContentDialogNotify, событие CreateContentCallback - "Создание контента" отрабатывается, а дальше уходит в бесконечный цикл.
Если исключение обработать, Компас просто виснет, а с подпиской даже виснуть перестал.
Ещё с ним поиграюсь, ещё не все варианты перепробовал.