Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Alex от 31-08-2014, 16:53:44
-
Здравствуйте.
Стоит задача добавить в AutoCAD новый Toolbar, который будет содержать два выпадающих списка и несколько кнопок. Как я понял, обычно это рекомендуют делать с помощью создания дополнительного CUI-файла и его последующей подгрузки в AutoCAD. Сам CUI-файл можно создать как заранее, в CUI-редакторе AutoCAD, так и программно, с помощью класса CustomizationSection.
Вначале я решил попробовать CUI-редактор (файл придется создавать в любом случае - так какая разница, где). Сам Toolbar создается без проблем, с кнопками тоже все просто: достаточно создать новую команду, задать для нее имя, описание, иконку и т. д., а потом добавить на созданный Toolbar.
А вот с выпадающими списками вышла неувязка: их я среди доступных элементов не нашел.
Есть ли способ добавить их программно?
-
А вот с выпадающими списками вышла неувязка: их я среди доступных элементов не нашел.
А что ты имеешь в виду под выпадающим списком? Что-то типа списка цветов, слоёв, типов линий, но не один из них? Тогда свой такой список ты создать в Toolbar не можешь. Только один из существующих.
-
Да, именно их.
А что-то типа компонента Label (строки, которую можно будет программно изменять) на Toolbar добавить можно?
-
А что-то типа компонента Label (строки, которую можно будет программно изменять) на Toolbar добавить можно?
Нет. Во всяком случае средствами CUI API. Теоретически можно при помощи вских хуков, но это и на ObjectARX (C++) непросто, а уж при помощи C#/VB.NET и подавно. Подумай над палитрами (Palette), на которых можно разместить свои элементы управления, в том числе и выпадающие списки и т.д.
-
Да, я тоже подумал об использовании Palette (нашелся в процессе поисков документик "Creating a Docking Palette for AutoCAD® with VB.NET (https://forums.autodesk.com/autodesk/attachments/autodesk/152/26712/1/CP205-2_Mike_Tuersley.pdf)" - думаю, подойдет в качестве отправной точки).
Либо, как вариант, можно сделать на тулбаре отдельную кнопку, по нажатию на которую открывается окно - а в нем уже выводятся выпадающие списки. Пусть заказчик решает, что удобнее.
Большое спасибо за помощь!
-
Либо, как вариант, можно сделать на тулбаре отдельную кнопку, по нажатию на которую открывается окно - а в нем уже выводятся выпадающие списки
Лично я бы предпочел именно этот вариант. Во всяком случае его легче расширять в случае необходимости добавлять новые поля. Да и не занимает место на рабочем поле чертежа.
-
Мне и самому было бы так проще. :)
Но загвоздка в том, что теряется интерактивность.
Грубо говоря, в моем случае выпадающие списки определяют то, какую группу объектов пользователь видит на чертеже.
Сейчас я комбобоксы отрисовываю на ленте (Ribbon), и поэтому сразу видно, с какой группой идет работа. Что будет, если это убрать, - я не знаю.
Посмотрим, что пользователи скажут. Ну или что заказчик решит.
-
Грубо говоря, в моем случае выпадающие списки определяют то, какую группу объектов пользователь видит на чертеже.
В этом точно, у "своих" окон, не должно быть проблем. ИХМО - при таком подходе минус только немного "не автокадовский" вид, в остальном - больше плюсов - рисуй что хочешь.
-
Да - с точки зрения программирования, конечно, удобнее. :)