создание панели инструментов

Автор bs, 28.02.06, 10:29:15

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

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

bs

В справке сказано, что библиотеки созданные как addin могут работать только в режиме меню, что неудобно. Требуется создать свою собственную панель инструментов, чтобы она была всегда на виду. Можно ли создавать плугины в обычном смысле, а не библиотеки?

Gek

Сделай контроллер и не парься. Он будет иметь любые окна, сам вызовет Компас, сделает че надо и закроет его.

Проходящий мимо

в КОМПАС-3D V8 механизм создание панели с командами которые есть в библиотеке!  :!:
Его можно применять как для простых подключаемых библиотек, так и Addin`s.
Единственное необходимо данную панель активировать, т.е. чтобы была видима.

olden

Зачем создавать что-то новое в справке есть ExternalGetToolBarId. Хотя лично я не очень разобрался как ею пользоваться.

Дмитрий22

Кто-нибудь знает, как вызвать всплывающую (контекстную) панель программно?
Как ее определить для своих макро-объектов - знаю, а как вызвать для Компасовских? Получил задание от Героя форума "допилить" функционал Компаса. На объекте "осевая линия" контекстную панель разработчики забыли вызвать. Селектирование объекта я перехватил, осталось вызвать Компасовскую  контекстную панель на ней. Есть вариант вызвать самописную панель, но это муторно и долго. Есть варианты попроще?

FillContextPanel - CLLBACK для накачки контекстной панели.
Для v17.1.
+ Благодарностей: 1

Дмитрий22


IProcessContextPanel - интерфейс работы с контекстной панелью, появился в v17.

PS

Некоторые уточнения:
Цитата: Sabahs от 26.11.17, 08:23:23
IProcessContextPanel - интерфейс работы с контекстной панелью, появился в v17.
На самом деле в Компас 17 это накачка контекстного меню. Контекстная панель в Компас 17 не поддерживается в API, обещают только в Компас 18.
В Компас 16 контекстные панели поддерживаются, см. справку:

Дмитрий22

#9
В 16 они поддерживаются, но только на уровне настройки.
Функция LibToolBarId вызывается изнутри, как и ее аналог ExternalGetToolBarId вызывать в коде бесполезно (по крайней мере у меня не получилось).
PS, разве можно вызвать контекстную панель "по требованию" в коде? Компас 16.

PS

Цитата: Дмитрий22 от 26.11.17, 10:08:33
PS, разве можно вызвать контекстную панель "по требованию" в коде? Компас 16.
Думаю, сами Вы в программе контекстную  панель не вызовите. Но можно попробовать два варианта:
1. Эмулировать клик мыши на нужном объекте.
2. Полностью в программе реализовать свою панель.
+ Благодарностей: 1

Дмитрий22

Я так и предполагал.
1. Это решено.
2. А вот с этим придется повозиться.