明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6375|回复: 12

[界面] 自定义菜单和工具条

  [复制链接]
发表于 2011-5-26 16:24 | 显示全部楼层 |阅读模式
         我在论坛找了一个例子,添加了自己的菜单后,为什么第一次用里面的功能不出错,第二次就致命错误了呢?
         添加的源代码是这样的
         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#制作自己的工具条?








该贴已经同步到 yxr_MJTD的微博
发表于 2011-5-26 17:30 | 显示全部楼层
if (acadApp.MenuGroups.Item(0).Menus.Count == 0)
再往里面加菜单。
还有就是,最好把添加菜单的程序放到try、catch里面吧。
发表于 2011-6-1 20:39 | 显示全部楼层
恩8错
 楼主| 发表于 2011-6-3 09:12 | 显示全部楼层
回复 epwt 的帖子

添加的时候不会出错。我是说在第二次用NTK这个命令时会出错。
发表于 2011-6-3 11:18 | 显示全部楼层
因为已经存在了,我认为你在添加之前应该查询一下是不是已经有了这个菜单。另外我建议是一加载程序集就加载创建菜单的函数,你只需要实现一个接口就可以了,而不是显式地使用命令
发表于 2011-6-3 12:38 | 显示全部楼层
我是手工做一个菜单,安装程序时,把菜单复制到指定路径。在加载程序集时,判断一下菜单是否已加载,如果没加载,就加载它。所以只在第一次加载程序集时,才加载菜单。我觉得用COM方式加载不如CAD本身菜单加载方便和快捷。
发表于 2011-6-3 14:25 | 显示全部楼层
回复 yxr_MJTD 的帖子

既然你说是第2次使用NTK这个命令时会出错,那你应该查你NTK这个命令对应代码,从你描述看应该和创建菜单没有关系,而是和NTK这个命令对应运行的代码有关
 楼主| 发表于 2011-6-15 11:35 | 显示全部楼层
回复 gulong2001 的帖子

但是,我直接用命令是不会出问题的。
发表于 2011-11-30 17:20 | 显示全部楼层
AcadApplication  
为什么我这里找不到 缺少using引用是肿么了~~
发表于 2011-11-30 18:15 | 显示全部楼层
  //COM方式获取AutoCAD应用程序对象
            AcadApplication acadApp = (AcadApplication)Application.AcadApplication;
引用 Com  AutoCAD 2012 Type Library
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 20:35 , Processed in 0.477680 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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