明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8096|回复: 18

[界面] [分享]在CAD的帮助菜单栏增加下拉子菜单

  [复制链接]
发表于 2009-9-19 10:49 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-12-23 8:45:59 编辑

  1.         [CommandMethod("AddMyHelpMenuItem")]
  2.         static public void Cmd1()
  3.         {
  4.             Autodesk.Windows.RibbonMenuItem helpItem = new Autodesk.Windows.RibbonMenuItem();
  5.             helpItem.Text = "我加的东东!!";// "My Help Item";
  6.             helpItem.CommandHandler = new MyCommandHandler();
  7.             Autodesk.Windows.RibbonMenuButton helpButton = Autodesk.Windows.ComponentManager.HelpButton;
  8.             helpButton.Items.Insert(0, helpItem);
  9.         }
复制代码
  1.     public class MyCommandHandler : System.Windows.Input.ICommand
  2.     {
  3.         public bool CanExecute(object parameter)
  4.         {
  5.             return true;
  6.         }
  7.         public event EventHandler CanExecuteChanged;
  8.         public void Execute(object parameter)
  9.         {
  10.             System.Windows.Forms.MessageBox.Show("My Help Item got clicked");
  11.         }
  12.     }
复制代码
程序要正常运行需要添加以下的引用:

现在上传源码工程文件:

运行环境:VS2008+AutoCAD2010

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1威望 +1 明经币 +2 金钱 +20 贡献 +5 激情 +5 收起 理由
雪山飞狐_lzh + 1 + 2 + 20 + 5 + 5 【精华】好程序

查看全部评分

发表于 2020-4-2 11:53 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢
发表于 2009-9-19 12:38 | 显示全部楼层
lzx838发表于2009-9-19 10:49:0049616                static public void Cmd1()        {   &
  1.     public class MyCommandHandler : System.Windows.Input.ICommand
  2.     {
  3.         public bool CanExecute(object parameter)
  4.         {
  5.             return true;
  6.         }
  7.         public event EventHandler CanExecuteChanged;
  8.         public void Execute(object parameter)
  9.         {
  10.             System.Windows.Forms.MessageBox.Show("My Help Item got clicked");
  11.         }
  12.     }
复制代码
需要引用CAD安装目录下的AdWindows.dll文件及Windows的WindowsBase
RibbonMenuItem 这个类找不到啊,是哪个组件的类
 楼主| 发表于 2009-9-19 12:55 | 显示全部楼层

引用CAD安装目录下的AdWindows.dll文件

发表于 2009-9-19 15:25 | 显示全部楼层
Ribbon是AutoCad2009版本才有的,你的版本?
发表于 2009-9-19 18:47 | 显示全部楼层
lzh741206发表于2009-9-19 15:25:00Ribbon是AutoCad2009版本才有的,你的版本?

我本来引用的就有C:\ObjectARX 2009\inc-win32\AdWindows.dll,还是没有RibbonMenuItem这个类啊,怎么回事

发表于 2009-9-19 18:52 | 显示全部楼层
lzh741206发表于2009-9-19 15:25:00Ribbon是AutoCad2009版本才有的,你的版本?

2009,2010的帮助文件中根本找不到这个类RibbonMenuItem,命名空间Autodesk.Windows我的项目里一直有,就是没有RibbonMenuItem类。

发表于 2009-9-19 19:05 | 显示全部楼层

AutoCad2010有的,注意在安装目录下引用

2009没用过,就不知道了

发表于 2009-9-19 19:13 | 显示全部楼层
lzh741206发表于2009-9-19 19:05:00AutoCad2010有的,注意在安装目录下引用2009没用过,就不知道了

对2010有RibbonMenuItem,但是为什么没有“helpButton.Items.Insert”中的Insert成员?看下面最后一句:

            helpItem.Text = "我加的东东!!";// "My Help Item";
            helpItem.CommandHandler = new MyCommandHandler();

            Autodesk.Windows.RibbonMenuButton helpButton = Autodesk.Windows.ComponentManager.HelpButton;
            helpButton.Items.Insert(0, helpItem);

发表于 2009-9-19 19:26 | 显示全部楼层

1、确保你的目标项目为Framework3.0或以上

2、仔细看一楼最后一句话

 楼主| 发表于 2009-9-20 08:52 | 显示全部楼层
可惜我今天没上班,不然我把机子上的源码工程文件上传上来,大家就更明白更加清楚了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 18:35 , Processed in 0.323937 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表