Тема: Toolbar

Средствами Add-In-а можно сделать toolbar в Акаде. Редактировать его в студии как ресурс, перехватчик сообщений от него и все такое.

Но... это не красиво т.к. добавляемый toolbar не принадлежит Menu группе, его с райт клика по тулбаровской области нельзя закрыть, открыть и все такое.

Не мог бы мне кто-нибудь прислать пример исходников того как правильно встроить свой COM тулбар в Acad и как попасть в функцию обработчик по нажатию на кнопку в контексте приложения, а не документа.

Заранее благодарен.

Re: Toolbar

Поделитесь, как "Средствами Add-In-а можно сделать toolbar в Акаде"?
Спасибо.

Re: Toolbar

Делаешь себе в Студии toolbar ObjectARX-ий и там есть кнопка поддержка MFC или че то в этом роде.

Тыкаешь ее и появляется диалог с которого можно создать необходимый стафф для toolbar-a

Создаешь значит и в проекте появляется класс самого тулбара, перехватчик сообщений, которому валятся сообщения от твоего тулбара и глобальная функция CreateToolbar

В инит функции говоришь CreateToolbar

Запускаешь в Акаде АРХ и видишь там свой появившийся Toolbar

Но он не совсем такой как остальные

Re: Toolbar

Вопрос по mnu файлу

//-----------------------------------------------------//
***TOOLBARS

**TB_SPTBAR1
[_Toolbar("Test toolbar", _Floating, _Show, 150, 150, 1)]   
[_Button("Test command",iconbig ,iconsmall)]^C^C_commandName

//---------------------------------------------------------//

1) Может кто посоветовать где взять описание или хелп по созданию mnu файлов
2) Тулбар у меня заработал, но вот вопрос по iconbig,iconsmall - это имена иконок. Но я посмотрел mnu файлы и не нашел на винте каких-либо соответствующих bmp или ico файлов. Откуда берутся эти иконки на кнопках тулбара??? Из .rc файла arx приложения???

Re: Toolbar

Для ACAD.MNU это ресурсы из ACADBTN.DLL, для собственнных меню надо собирать картинки(BMP 16x15; 24x22) в ресурсную DLL с тем же именем, что и меню, конечно можно и оставить на диске, только не забывать передавать вместе с меню. Если картинки дисковые, в меню указывается расширение, если в ресурсе, без расширения. А про меню все написано в acad_acg.chm.

Re: Toolbar

Извинете меня соврамши, файл в кавычках, ресурс-без кавычек

Re: Toolbar

Спасибо.
Все заработало только есть одна проблемма.

Иконки к кнопкам лежат в папке там же где mnu файл
После того как я закрываю toolbar, а потом открываю его опять - иконки не находятся и улыбающиеся рожицы вместо них.

Кто знает как поправить.

Файл в кавычках - т.е. в mnu файле надо указывать имена файлов с иконкой в кавычках?

Где скачать acad_acg.chm (Лень самому искать :) )? Sorry...

Re: Toolbar

> Где
скачать acad_acg.chm :) В каталоге HELP.
Чтобы вместо рож были картинки нужно каталог с картинками добавить к путям поиска автокада. Первый пункт на первой закладке в окне настроек.

Re: Toolbar

1) За HELP спасибо :)

2) Я понимаю что надо добавить путь поиска к первому пункту первой закладки. Но хотелось бы это сделать в инсталяшке или при запуске ARX-a, а не ручками т.к. у каждого может быть свой профайл со своими настройками. Каждому прописать?
Поэтому вопрос:
Можно ли программно из ARX-а перед тем как загрузить mnu файл, добавить свой путь поика к Acad-у. Если можно то как? Я не нашел в Help-e такого метода

Заранее благодарен.

Re: Toolbar

B еще по поводу ресурсной dll-ки...

1) Делаю myname.mnu
2) Делаю ресурсную dll-ку с иконками

Вопросы:
1) Как и куда надо положить эту dll-ку? (Типа в search path или нет...)
2) Самому из приложения грузить эту dll-ку (Если да то как) или автокад ее сам найдет и загрузит при загрузке mnu файла?

Re: Toolbar

Предыдущие два вопроса в ответах более не нуждаются

Как в dll засунуть иконки для кнопок?

Создать обычную dll?
В rc файл занести Bitmap (16x15) или Icon?
Как строковой идентификатор проассоциировать с id-ом ресурса в этой dll? Или какие действия надо сделать чтоб ресурс стал доступен снаружи по стороковому идентификатору?

Re: Toolbar

В RC  надо прописать битмапы
snap16   BITMAP FIXED IMPURE snap16.bmp
snap24   BITMAP FIXED IMPURE snap24.bmp
В меню
UTILS_SNAP_ [_Button("Шаг", "snap16", "snap24")]'_SNAP

Re: Toolbar

Все :) Спасибо.

Александр - если встретимся с меня пиво...

Re: Toolbar

Подскажите, пожалйуста, как перехватить нажатие на кнопку собственной ToolBar в ARX-приложении.

Re: Toolbar

При создание toolbar-a указываешь ему окошко (которое не видно, а просто создается в памяти)

Если зделаешь toolbar через ARX Wizard то будут слудующие вещи
//----------------------------------------------
class CArxMsgHandler : public CWnd

CAcToolBar *CreateToolBar (UINT nID, CWnd *pOwner, LPCSTR pszTitle =NULL) ;
//-----------------------------------------------

Создаешь CArxMsgHandler и подставдяешь его в pOwner и твоему окну будут сыпаться сообщения от Toolbara что в ресурсах напишешь.

P.S. Но делать свой Toolbar не идейно как следует из вышеприведенного текста.
Сделать его надо через mnu файл

Re: Toolbar

Большое спасибо!

Re: Toolbar

Тоже столкнулся с необходимостью создания тулбаров...что-то изменилось 4 года спустя ? ))

Re: Toolbar

смотря для какого акада.
2005 - нет, те же mnu
2006 - cui или mnu, но cui глючит и они это признают, так что лучше mnu
2007, 2008 про mnu не слышал (в 2008 точно отказались), но зато доработали cui. как на меня, гадость редкая, mnu бы проще, но никуда от этого не денешься

Re: Toolbar

Acad2006, но я имел ввиду не файлы конфигурации, а динамически создаваемый тулбар, наличие кнопок в котором зависит от данных считанных из файлика.
Хотя как вариант средствами VC генерировать cui-файл и его подгружать....

Re: Toolbar

Спасибо большое, нам больше всего подойдет ресурсная DLL, т.к. папками с BMP у нас и так все завалено. Но по крайней мере теперь я знаю, что папки с BMP и пути к ним не такой уж топорный способ, раз многие это так организовывают!

Re: Toolbar

> Olga
так проще :)
зачем усложнять себе жизнь