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

2、在代码中添加using:

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

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

//自定义的组名

string strMyGroupName = "MyGroup";//保存的CUI文件名(从CAD2010开始,后缀改为了cuix)

string strCuiFileName = "MyMenu.cui";//创建一个自定义组(这个组中将包含我们自定义的命令、菜单、工具栏、面板等)

CustomizationSection myCSection = newCustomizationSection();

myCSection.MenuGroupName= strMyGroupName;

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放到总菜单中。按照这个原理,可以创建多级菜单。

//声明菜单别名

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);

6、保存菜单文件

//最后保存文件

myCSection.SaveAs(strCuiFileName);

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

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

cad自定义菜单cui_AutoCAD.NET二次开发:创建自定义菜单相关推荐

  1. cad自定义菜单cui_AutoCAD.NET二次开发:创建自定义菜单(AcCui)

    从CAD2007之后,Autodesk提供了一个新的程序集AcCui.dll,使用这个程序集,我们可以方便地做一些界面方面的操作,比如创建自定义菜单. 下面介绍一下菜单的创建过程: 1.在项目中添加引 ...

  2. php 自定义菜单 openid,微信公众平台开发(99) 自定义菜单获取OpenID

    关键字 微信公众平台 自定义菜单 OpenID 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html 在这篇 ...

  3. [导入]Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]...

    Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载] 文章来源:http://blog.csdn.net/chengking/archive/2007/0 ...

  4. NX二次开发-UFUN自定义尺寸导出NX窗口区域图像UF_DISP_create_framed_image

    NX二次开发-UFUN自定义尺寸导出NX窗口区域图像UF_DISP_create_framed_image NX9+VS2012#include <uf.h> #include <u ...

  5. cad自动运行dvb lisp_CAD二次开发程序的自动加载与使用

    常见的CAD二次开发程序有dvb.vlx.fas.lsp.arx和dll.在CAD中加载这几种程序之前,需要知道程序内部包括的命令,否则你加载完成了用不了. 在CAD命令窗口中输入"appl ...

  6. dedecms二次开发:自定义模型使用教程

    dedecms二次开发:自定义模型使用教程 在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章.图集.软件.商品.分类信息.专题.通过系统 ...

  7. C#ArcEngine二次开发——创建与调用AOI书签

    基于ArcEngine10.2和VS2012进行C#ArcEngine二次开发 创建与调用AOI书签 在如图所示的程序主窗体菜单栏中添加一个菜单项"创建书签",其控件名为" ...

  8. c++ Arx二次开发创建椭圆和样条曲线

    一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...

  9. NX/UG二次开发创建曲面偏置体

    NX/UG二次开发--创建曲面偏置体 创建曲面偏置体 1.曲面偏置 创建曲面偏置体 这里介绍了一种对模型曲面进行偏置来获得偏置体的方法. 1.曲面偏置 void OffsetFace(tag_t fa ...

最新文章

  1. 用 Python 写个贪吃蛇,保姆级教程
  2. Kendall’s tau-b,pearson、spearman三种相关性的区别(有空整理信息检索评价指标)
  3. Lucene第一篇【介绍Lucene、快速入门】
  4. VC中获取窗口句柄的各种方法
  5. fifo java_java linux fifo文件通信
  6. Linux CentOS下安装Oracle
  7. java crud事件回调_java回调机制 - 神是到着念的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. pageContext对象、JSP标签
  9. 我发现Facebook Messenger漏洞可使安卓用户互相监听,获奖6万美元
  10. php支付sdk接入网站教程,laravel 5.5 接入蚂蚁金服官方SDK(支付宝APP支付为例)开发步骤...
  11. @Resource注解
  12. 银行信用卡客户价值分析(Python数据分析)
  13. DataX--异构数据源数据交换工具
  14. 改(微微微微微小说)
  15. web在线聊天页面代码
  16. Hudi Clean 清理文件实现分析
  17. PHPWord在文档中插入表格
  18. H.264中NALU、RBSP、SODB的关系 (弄清码流结构)
  19. 三维目标检测论文阅读:PointPillars: Fast Encoders for Object Detection from Point Clouds
  20. Unity幸运转盘项目实战

热门文章

  1. #老杨说运维# 夏洛克AIOps的架构图(2020.11)
  2. Java中常见的final类
  3. tiup update
  4. Python-十六进制与字符串转换脚本
  5. php开发微信群机器人,[极客开发]WechatRobot - PHP微信机器人开发包
  6. 10个问题解答火热的元宇宙概念
  7. 螺丝头部及其相关知识点
  8. ROS入门日志--安装ROS-Academy-for-Beginners遇到的问题
  9. 学习索引结构的一些案例——Jeff Dean在SystemML会议上发布的论文
  10. 七、Gradle中的Project