乐筑天下

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

谁有Ribbon菜单的程序啊,或者讲讲怎么弄

[复制链接]

15

主题

53

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2014-8-23 20:55:00 | 显示全部楼层 |阅读模式
我测试了下论坛上的例子,似乎老是报错。我用得是cad2012和vs2010
回复

使用道具 举报

13

主题

36

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2014-9-5 10:53:00 | 显示全部楼层
顶!同求啊!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2014-9-5 21:45:00 | 显示全部楼层
用局部cui吧
回复

使用道具 举报

15

主题

53

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2014-9-8 10:30:00 | 显示全部楼层

我也测试了深入浅出AutoCAD.NET二次开发,用cad2012和vs2010,发现还是不行,有高手指点一二?
  1. /////////////////////////////////////////////////////////////////////////////////////////////////
  2. //http://www.bimcad.org 数字建筑
  3. //深入浅出AutoCAD二次开发(李冠亿)
  4. /////////////////////////////////////////////////////////////////////////////////////////////////
  5. using System;
  6. using Autodesk.Windows;
  7. using Autodesk.AutoCAD.Runtime;
  8. [assembly: CommandClass(typeof(Sample.CH6_3_5))]
  9. namespace Sample
  10. {
  11.     class CH6_3_5
  12.     {
  13.         [CommandMethod("AddRibbon")]
  14.         public void AddRibbon()
  15.         {
  16.             RibbonControl rc = RibbonControl();
  17.             RibbonTab rt = RibbonTab("菜单标签", "1");
  18.             RibbonPanel rp = RibbonPanel("菜单面板");
  19.             RibbonButton rb = RibbonButton("菜单按钮", "菜单命令");
  20.             rp.Source.Items.Add(rb);
  21.             rt.Panels.Add(rp);
  22.             rc.Tabs.Add(rt);
  23.         }
  24.         ///
  25.         /// 获得菜单控制
  26.         ///
  27.         ///
  28.         public static RibbonControl RibbonControl()
  29.         {
  30.             if (Autodesk.Windows.ComponentManager.Ribbon == null)
  31.                 Autodesk.Windows.ComponentManager.ItemInitialized += new EventHandler(ComponentManager_ItemInitialized);
  32.             return ComponentManager.Ribbon; //Autodesk.AutoCAD.Ribbon.RibbonServices.RibbonPaletteSet.RibbonControl; //
  33.         }
  34.         ///
  35.         /// 创建菜单标签
  36.         ///
  37.         /// 标签名
  38.         /// 标签ID
  39.         ///
  40.         public static RibbonTab RibbonTab(string Name, string id)
  41.         {
  42.             RibbonTab ribTab = new Autodesk.Windows.RibbonTab();
  43.             ribTab.Title = Name;
  44.             ribTab.Id = id;
  45.             ribTab.IsActive = true;
  46.             return ribTab;
  47.         }
  48.         ///
  49.         /// 创建菜单面板
  50.         ///
  51.         /// 面板名
  52.         ///
  53.         public static RibbonPanel RibbonPanel(string Title)
  54.         {
  55.             RibbonPanelSource ribSourcePanel = new RibbonPanelSource(); // Autodesk.Windows
  56.             ribSourcePanel.Title = Title;//now the panel
  57.             RibbonPanel ribPanel = new RibbonPanel();
  58.             ribPanel.Source = ribSourcePanel;
  59.             return ribPanel;
  60.         }
  61.         ///
  62.         /// 创建菜单按钮
  63.         ///
  64.         /// 按钮名
  65.         /// 命令名
  66.         ///
  67.         public static RibbonButton RibbonButton(string btName, string cmdName)
  68.         {
  69.             RibbonButton ribButton = new RibbonButton();
  70.             ribButton.Text = btName;
  71.             ribButton.CommandParameter = cmdName;
  72.             ribButton.ShowText = true;
  73.             ribButton.CommandHandler = new AdskCommandHandler();
  74.             return ribButton;
  75.         }
  76.         ///
  77.         /// 用于激活菜单
  78.         ///
  79.         ///
  80.         ///
  81.         static void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
  82.         {
  83.             if (Autodesk.Windows.ComponentManager.Ribbon != null)
  84.                 Autodesk.Windows.ComponentManager.ItemInitialized -= new EventHandler(ComponentManager_ItemInitialized);
  85.         }
  86.         ///
  87.         /// 执行按钮的命令
  88.         ///
  89.         public class AdskCommandHandler : System.Windows.Input.ICommand
  90.         {
  91.             ///
  92.             /// 是否可执行(接口)
  93.             ///
  94.             /// 命令名
  95.             ///
  96.             public bool CanExecute(object parameter)
  97.             {
  98.                 return true;
  99.             }
  100.             ///
  101.             /// 改变可执行状态
  102.             ///
  103.             public event EventHandler CanExecuteChanged;
  104.             ///
  105.             /// 执行命令
  106.             ///
  107.             /// 命令的名字
  108.             public void Execute(object parameter)
  109.             {
  110.                 //is from a Ribbon Button?
  111.                 RibbonButton ribBtn = parameter as RibbonButton;
  112.                 if (ribBtn != null)
  113.                     Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute((String)ribBtn.CommandParameter, true, false, true);
  114.                 //is from s Ribbon Textbox?
  115.                 RibbonTextBox ribTxt = parameter as RibbonTextBox;
  116.                 if (ribTxt != null)
  117.                     System.Windows.Forms.MessageBox.Show(ribTxt.TextValue);
  118.             }
  119.         }
  120.     }
  121. }
回复

使用道具 举报

13

主题

36

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2014-9-9 11:44:00 | 显示全部楼层

我也试了这个例子,可以啊!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 21:06 , Processed in 0.407334 second(s), 62 queries .

© 2020-2025 乐筑天下

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