Тема: Как создать Toolbar со своими кнопками при помощи ActiveX?

Подскажите, как создать новую Toolbar со своими кнопками при помощи ActiveX. А то я в этом не силен.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

Создается текстовый файл с расширением mnu и потом грузится :)

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

Вот пример кода, который создает панель "New-1" с одной кнопкой:

(vla-setbitmaps
    (vla-addtoolbarbutton
        (vla-add (vla-get-toolbars
                     (vla-item
                         (vla-get-menugroups (vlax-get-acad-object))
                         "ACAD"
                     )
                 )
                 "New-1"
        )
        0
        "Name_button"
        "Helpstring"
        (strcat (chr 3) (chr 3) (chr 95) "line" (chr 32))
    )
    "C:\\New-1.BMP"
    "C:\\New-1.BMP"
)

в данном случает кнопке присваивается картинка с именем "C:\\New-1.BMP"

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

Спасибо.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

Маленький вопрос - в каком месте будет сохранена инфа о созданной toolbar? И чего делать, если ее надо будет поменять?

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> kpblc
Созданный toolbar - объект и для полученя или изменения его свойств надо пользовать объектную модель, разумеется :). В mnu/mns эта панель и операции с ней не отображается.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> kpblc
Нигде не будет сохранена, пока не сохранить программно. (т.е. при помощи vla-Save). И то там есть какие-то нюансы в разных версиях AutoCAD...

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

Ничего не понимаю, если честно. Неужели можно сделать "временную" панель, запись о которой не хранится ни в каком mns? А если проверять все файлы mns после выполнения? В коде-то напрямую сказано, что хранить в группе ACAD, т.е. судя по всему, модифицируется acad.mns... Или я ошибаюсь?

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

Когда в чертеж добавлена линия, изменения в dwg тоже не отображаются до его сохранения.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> AY

> Александр Ривилис
Эта панель сохранилась у меня в acad.mns. Без пиктограммы, естественно. Эта панель присутствует в адаптации. При новом запуске AutoCAD панель появляется на прежнем месте. Ничего я не сохранял, все само собой получилось.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> Владимир Громов
Версия AutoCAD?

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> Александр Ривилис
2005, естественно. В 2006 ведь нет файла acad.mns. В 2006 панель появилась на экране, но после перезагрузки AutoCAD ее не стало. В адаптации я ее не увидел. Но кнопка-то на ней работает после появления панели. И эта панель присутствует в списке панелей, вызываемом правой кнопкой мыши. Но в адаптации не нашел, может плохо искал.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> Владимир Громов
У меня ни в 2005, ни в 2006 эта панель после перезапуска AutoCAD не появляется и в списке панелей ее нет. В acad.mns ее тоже нет. Более того дата/время последней модификации файлов acad.mns/acad.mnс/acad.mnr не менялись после запуска программы. В AutoCAD 2006 метод save для menugroup упразднен, так что сохранить меню созданное через ActiveX в нем вообще невозможно.
Резюме - хочешь, чтобы меню было всегда - делай его в *.mns-файле.

Re: Как создать Toolbar со своими кнопками при помощи ActiveX?

> Александр Ривилис
Я-то всегда так и делаю. Это надежно, IMHO, и процессом управляешь.