yxr_MJTD 发表于 2011-5-26 16:24:36

自定义菜单和工具条

         我在论坛找了一个例子,添加了自己的菜单后,为什么第一次用里面的功能不出错,第二次就致命错误了呢?
         添加的源代码是这样的
         public void AddMenu()
      {
            //COM方式获取AutoCAD应用程序对象
            AcadApplication acadApp = (AcadApplication)Application.AcadApplication;
            //为AutoCAD添加一个新的菜单,并设置标题为"MoKa插件"
            AcadPopupMenu MKMenu = acadApp.MenuGroups.Item(0).Menus.Add("MyToolOne");
            //声明一个AutoCAD弹出菜单项,用于获取添加的菜单项对象
            AcadPopupMenuItem MKMenuItem;
            //在新建的菜单中添加一个名为"横断面"的子菜单
            AcadPopupMenu MKMenuItems = MKMenu.AddSubMenu(MKMenu.Count + 1, "功能1 ");
            //在"横断面"子菜单下添加子菜单
            MKMenuItem = MKMenuItems.AddMenuItem(MKMenuItems.Count + 1, "功能2", "NTK ");
            MKMenuItem.HelpString = "功能2";//状态栏提示信息   
            //添加一个分隔条以区分不同类型的命令
            MKMenu.AddSeparator(MKMenu.Count + 1);
            //将定义的菜单显示在AutoCAD菜单栏的最后
            MKMenu.InsertInMenuBar(acadApp.MenuBar.Count + 1);            
      }

    请问是什么原因引起的?还有就是怎么用c#制作自己的工具条?








http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 yxr_MJTD的微博

epwt 发表于 2011-5-26 17:30:02

if (acadApp.MenuGroups.Item(0).Menus.Count == 0)
再往里面加菜单。
还有就是,最好把添加菜单的程序放到try、catch里面吧。

yuanhui_hust 发表于 2011-6-1 20:39:09

恩8错

yxr_MJTD 发表于 2011-6-3 09:12:10

回复 epwt 的帖子

添加的时候不会出错。我是说在第二次用NTK这个命令时会出错。

cdinten 发表于 2011-6-3 11:18:30

因为已经存在了,我认为你在添加之前应该查询一下是不是已经有了这个菜单。另外我建议是一加载程序集就加载创建菜单的函数,你只需要实现一个接口就可以了,而不是显式地使用命令

齐天大圣3386 发表于 2011-6-3 12:38:49

我是手工做一个菜单,安装程序时,把菜单复制到指定路径。在加载程序集时,判断一下菜单是否已加载,如果没加载,就加载它。所以只在第一次加载程序集时,才加载菜单。我觉得用COM方式加载不如CAD本身菜单加载方便和快捷。

gulong2001 发表于 2011-6-3 14:25:53

回复 yxr_MJTD 的帖子

既然你说是第2次使用NTK这个命令时会出错,那你应该查你NTK这个命令对应代码,从你描述看应该和创建菜单没有关系,而是和NTK这个命令对应运行的代码有关

yxr_MJTD 发表于 2011-6-15 11:35:01

回复 gulong2001 的帖子

但是,我直接用命令是不会出问题的。

古泊川 发表于 2011-11-30 17:20:41

AcadApplication
为什么我这里找不到 缺少using引用是肿么了~~

sieben 发表于 2011-11-30 18:15:11

//COM方式获取AutoCAD应用程序对象
            AcadApplication acadApp = (AcadApplication)Application.AcadApplication;
引用 ComAutoCAD 2012 Type Library
页: [1] 2
查看完整版本: 自定义菜单和工具条