Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:
Hosting Ukraine

Создание в AutoCAD панели инструментов с использованием библиотеки DLL

Статья взята с сайта AfraLISP
Перевод на русский: Евгений Калашников

Вы еще не устали от всех этих растровых файлов, в которых содержатся рисунки к кнопкам Вашего меню, и которые Вам приходится таскать вместе с файлом меню? Вам еще не надоело каждый раз пересаживаясь на новую машину, или посылая Ваше меню кому-нибудь, возится с этим обилием растровых файлов, занимающих, к тому же, не мало места на диске? (Не дай Бог забыть хоть один! "Смеющиеся рожицы" ждут своего часа...)

А не желаете попробовать сохранить все рисунки для кнопок Вашего меню в одном ActiveX DLL файле (Также, как это сделано в самом AutoCAD при создании его меню)?

Для этого Вам понадобится Visual Basic 6 и встроенный в него редактор ресурсов Visual Basic Resource Editor.


Во-первых, Вы должны создать Панель инструментов обычным способом с использованием файлов растровых рисунков в формате BMP, и проверить его в AutoCAD. В приложенном архиве находится пример файла меню, которое приведено ниже:

***MENUGROUP=VBA

***TOOLBARS

ID_VBA_0  [_Toolbar("VBA", _Floating, _Show, 350, 246, 1)]
ID_VBA_1  [_Button("VBA Load", "vbaload.bmp", "vbaload32.bmp")]^C^C_vbaload 
ID_VBA_2  [_Button("VBA Macro", "vbamacro.bmp", "vbamacro32.bmp")]^C^C_vbarun 
ID_VBA_3  [_Button("VBA Editor", "vbaide.bmp", "vbaide32.bmp")]^C^C_vbaide 
ID_VBA_4  [_Button("VBA Manager", "vbaman.bmp", "vbaman32.bmp")]^C^Cvbaman 

***HELPSTRINGS

ID_VBA_1  [Load VBA Project]
ID_VBA_2  [Run VBA Macro]
ID_VBA_3  [Load VBA Editor]
ID_VBA_4  [Load VBA Manager]

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

Теперь, чтобы Вам было удобнее, сохраните файл меню и все используемые в меню файлы рисунков кнопок в отдельной папке, что в дальнейшем упростит Вам работу с этими файлами при подключении их к проекту VB и при создании библиотеки DLL.

Запустите VB6 и создайте новый проект ActiveX DLL. Затем откройте редактор ресурсов VB6 Resource Editor. Если он не загружен, то загрузите его с помощью Add-In Manager.

Загрузите каждый из Ваших рисунков в Resource Editor, нажимая для этого на кнопку Add Bitmap... , и переименовывая добавленные изображения согласно используемых в меню имен (т.е. заменя подставляемые редактором ресурсов цыфровые обозначения на имена загружаемых файлов). Для переименования достаточно нажать правой кнопкой мыши по имени рисунка, выбрать пункт всплывающего меню Properties (Свойства), а затем поменять содержимое поля Id на нужное Вам имя. Когда все рисунки будут добавлены сохраните проект. (Сохраните его под таким же именем, что и у файла Вашего меню. В заключении, выберите пункт меню "File -> Make YourMenuName.DLL", и в появившемся окне задайте папку и имя Вашего нового DLL ресурса. (Важно то, что DLL файл должен иметь то же имя, что и файл меню.) Теперь Вы можете выйти из VB6.

Ну, и наконец, последний шаг. Откройте файл с Вашем меню и удалите расширения .BMP из названий файлов рисунков кнопок. Это должно выглядеть следующим образом:

***MENUGROUP=VBA

***TOOLBARS

ID_VBA_0 [_Toolbar("VBA", _Floating, _Show, 350, 246, 1)]
ID_VBA_1 [_Button("VBA Load", "vbaload", "vbaload32")]^C^C_vbaload 
ID_VBA_2 [_Button("VBA Macro", "vbamacro", "vbamacro32")]^C^C_vbarun 
ID_VBA_3 [_Button("VBA Editor", "vbaide", "vbaide32")]^C^C_vbaide 
ID_VBA_4 [_Button("VBA Manager", "vbaman", "vbaman32")]^C^Cvbaman 

***HELPSTRINGS

ID_VBA_1 [Load VBA Project]
ID_VBA_2 [Run VBA Macro]
ID_VBA_3 [Load VBA Editor]
ID_VBA_4 [Load VBA Manager]

Затем скопируйте отредактированный файл меню и созданный файл DLL в один из каталогов поддержки AutoCAD, а испрользуемые рание файлы растровых рисунков наоборот перенесите куда-нибуть из каталога поддержки. Попробуюте перекомпилировать Ваше меню. Чтобы сделать это запустите AutoCAD и загрузите Ваш новый шаблон меню.

Если Вы все сделали правильно, то все должно получится. Никаких "Смеющихся лиц" Вы не обнаружите...

С этого времени, все, что Вы должны сделать для распространения меню - это сопроводить его одним единственным DLL файлом (ну, и, естественно, программами, запускаемыми с помощью этого мню). Прощайте Битмапы...

Пример меню выполненного с учетом рекомендаций, описанных в данной главе.



Copyright © Сайт поддержки пользователей САПР