乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 51|回复: 2

求帮助:关于用代码创建局部CUI文件

[复制链接]

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2015-4-30 13:29:00 | 显示全部楼层 |阅读模式
主界面就想做成这个样子

3w4ttrgihj3.png

3w4ttrgihj3.png

目前遇到的问题是:
       当CAD启动后,调用命令,上面的四个区域都可以创建成功
       但当我在void IExtensionApplication.Initialize() 中调用时,②面板能够创建成功,但是  ①Ribbon面板和③快捷菜单 无法创建,因为
       Autodesk.Windows.RibbonControl rc = Autodesk.Windows.ComponentManager.Ribbon;  这里rc为null值
       感觉最简单的方法,就是如果CAD主界面创建成功后,会触发一个事件,然后获取这个事件就好了。不知道有没有这种事件。
      如果用局部CUI的方式做界面,我找了几天的资料,网上到时有讲菜单写入CUIX的方法,就是没有找到怎么讲Ribbon面板写入CUIX文件,并且后续的快捷菜单,和工作空间也不知道怎么搞了。
        求帮助啊!
附上生成Ribbon的代码
  1. #region 添加功能区菜单
  2.         [CommandMethod("AddRibbon")]
  3.         public void AddRibbon()
  4.         {
  5.             Autodesk.Windows.RibbonControl rc = GetRibbonControl();
  6.             RibbonTab rt = GetRibbonTab("菜单标签", "1");
  7.             RibbonPanel rp = GetRibbonPanel("菜单面板");
  8.             Autodesk.Windows.RibbonButton rb = GetRibbonButton("菜单按钮", "菜单命令");
  9.             rp.Source.Items.Add(rb);
  10.             rt.Panels.Add(rp);
  11.             rc.Tabs.Add(rt);
  12.         }
  13.         ///
  14.         /// 获得菜单控制
  15.         ///
  16.         ///
  17.         public static Autodesk.Windows.RibbonControl GetRibbonControl()
  18.         {
  19.             if (Autodesk.Windows.ComponentManager.Ribbon == null)
  20.                 Autodesk.Windows.ComponentManager.ItemInitialized += new EventHandler(ComponentManager_ItemInitialized);
  21.             return Autodesk.Windows.ComponentManager.Ribbon; //Autodesk..Ribbon.RibbonServices.RibbonPaletteSet.RibbonControl; //
  22.         }
  23.         ///
  24.         /// 创建菜单标签
  25.         ///
  26.         /// 标签名
  27.         /// 标签ID
  28.         ///
  29.         public static RibbonTab GetRibbonTab(string Name, string id)
  30.         {
  31.             RibbonTab ribTab = new Autodesk.Windows.RibbonTab();
  32.             ribTab.Title = Name;
  33.             ribTab.Id = id;
  34.             ribTab.IsActive = true;
  35.             return ribTab;
  36.         }
  37.         ///
  38.         /// 创建菜单面板
  39.         ///
  40.         /// 面板名
  41.         ///
  42.         public static RibbonPanel GetRibbonPanel(string Title)
  43.         {
  44.             Autodesk.Windows.RibbonPanelSource ribSourcePanel = new Autodesk.Windows.RibbonPanelSource(); // Autodesk.Windows
  45.             ribSourcePanel.Title = Title;//now the panel
  46.             RibbonPanel ribPanel = new RibbonPanel();
  47.             ribPanel.Source = ribSourcePanel;
  48.             return ribPanel;
  49.         }
  50.         ///
  51.         /// 创建菜单按钮
  52.         ///
  53.         /// 按钮名
  54.         /// 命令名
  55.         ///
  56.         public static Autodesk.Windows.RibbonButton GetRibbonButton(string btName, string cmdName)
  57.         {
  58.             Autodesk.Windows.RibbonButton ribButton = new Autodesk.Windows.RibbonButton();
  59.             
  60.             ribButton.Text = btName;//按钮名称
  61.             ribButton.CommandParameter = "HelloWorld";//修改的这里//cmdName;执行的命令名称
  62.             ribButton.ShowText = true;
  63.             ribButton.CommandHandler = new AdskCommandHandler();
  64.             return ribButton;
  65.         }
  66.         ///
  67.         /// 用于激活菜单
  68.         ///
  69.         ///
  70.         ///
  71.         static void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
  72.         {
  73.             if (Autodesk.Windows.ComponentManager.Ribbon != null)
  74.                 Autodesk.Windows.ComponentManager.ItemInitialized -= new EventHandler(ComponentManager_ItemInitialized);
  75.         }

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2015-4-30 15:46:00 | 显示全部楼层
建议直接做成cui文件加载
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2015-5-4 10:48:00 | 显示全部楼层
飞狐版主有关于局部Cui的代码吗,我在网上找了几天了,只找到了关于 MenuGroup的代码,而快捷菜单等的代码都没有
我通过另外一种方式解决了这个问题,共享一下复制代码在这里事件响应这么写复制代码
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 15:48 , Processed in 0.614556 second(s), 61 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表