首页 > Web开发 > 详细

AutoCAD.NET二次开发:创建自定义菜单

时间:2014-03-15 14:13:11      阅读:2054      评论:0      收藏:0      [点我收藏+]

1、在项目中添加引用:AcCui.dll,这个DLL存放在CAD的安装目录中。但是,好像CAD2007之前的版本里没有这个DLL),我电脑上安装了CAD2004、CAD2005、CAD2008、CAD2010,其中,只有CAD2008和CAD2010中有这个DLL。

2、在代码中添加using:

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Customization;
using System.Collections.Specialized;

3、声明一个自定义组,在这个组中可以自定义我们的命令、菜单、工具栏等。

bubuko.com,布布扣
//自定义的组名
string strMyGroupName = "MyGroup";
//保存的CUI文件名(从CAD2010开始,后缀改为了cuix)
string strCuiFileName = "MyMenu.cui";

//创建一个自定义组(这个组中将包含我们自定义的命令、菜单、工具栏、面板等)
CustomizationSection myCSection = new CustomizationSection();
myCSection.MenuGroupName = strMyGroupName;
bubuko.com,布布扣

4、创建命令组,并添加菜单命令

//创建自定义命令组
MacroGroup mg = new MacroGroup("MyMethod", myCSection.MenuGroup);
MenuMacro mm1 = new MenuMacro(mg, "打开文件", "OF", "");
MenuMacro mm2 = new MenuMacro(mg, "打开模板", "OM", "");
MenuMacro mm3 = new MenuMacro(mg, "保存", "SV", "");

5、创建菜单,如果菜单项是单级菜单,则直接声明为PopMenuItem即可;如果菜单项下有子级,则将其子级放到一个PopMenu中,然后将这个PopMenu放到PopMenuRef中,最后将PopMenuRef放到总菜单中。按照这个原理,可以创建多级菜单。

bubuko.com,布布扣
 //声明菜单别名
StringCollection scMyMenuAlias = new StringCollection();
scMyMenuAlias.Add("MyPop1");
scMyMenuAlias.Add("MyTestPop");

//菜单项(将显示在项部菜单栏中)
PopMenu pmParent = new PopMenu("我的菜单", scMyMenuAlias, "我的菜单", myCSection.MenuGroup);

//子项的菜单(多级)
PopMenu pm1 = new PopMenu("打开", new StringCollection(), "", myCSection.MenuGroup);
PopMenuRef pmr1 = new PopMenuRef(pm1, pmParent, -1);
PopMenuItem pmi1 = new PopMenuItem(mm1, "文件", pm1, -1);
PopMenuItem pmi2 = new PopMenuItem(mm2, "模板", pm1, -1);

//子项的菜单(单级)
PopMenuItem pmi3 = new PopMenuItem(mm3, "保存(&S)", pmParent, -1);
bubuko.com,布布扣

6、保存菜单文件

// 最后保存文件
myCSection.SaveAs(strCuiFileName);

 下面是一个测试程序的源码,开发环境是:VS2005 + CAD2008

点击下载

AutoCAD.NET二次开发:创建自定义菜单,布布扣,bubuko.com

AutoCAD.NET二次开发:创建自定义菜单

原文:http://www.cnblogs.com/bomb12138/p/3600842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!