objectarx.net 自定义菜单 cui方式

本文介绍了如何使用ObjectARX.NET框架创建自定义CAD用户界面(CUI)。通过添加引用、获取主配置对象、创建自定义CUI对象、添加菜单命令组和菜单项设置,最后保存为CUI文件。代码示例展示了创建过程,包括DataTable数据结构用于存储菜单信息。
摘要由CSDN通过智能技术生成

本文目前仅包括怎样用objectarx.net 创建CUI,你可以用cad中的cui命令进行创建,不过我不喜欢那种方式,会附带很多无用的信息。

1个自定义局部cui包括如下内容:

head:这个基本不变

MenuGroup:这个是主要的菜单资源,包括了菜单所用到的命令以及菜单项的组成和工具栏等。

其中菜单组命令为MacroGroup ,里面包括了每个菜单用到的命令,每个命令由名称、命令、图标文件、注释等组成。

PopMenu表示菜单项的组成,里面包括了菜单的名称,挂接到命令ID,是否是分割条等。

ToolBar 表示工具栏的设置。

 

步骤:

1. 07以上版本,添加引用Accui.dll

2. 添加引用 using Autodesk.AutoCAD.Customization;

3. 得到主配置对象

    string mainCui = Application.GetSystemVariable("MENUNAME") + ".cui";// 从AUTOCAD系统变量MENUNAME得到main cui文件
            CustomizationSection cw = new CustomizationSection(mainCui);

4. 创建局部自定义cui对象

  CustomizationSection pcs = new CustomizationSection();
            pcs.MenuGroupName = strMenuGroupName;

5. 添加菜单的命令组
            MacroGroup mg = new MacroGroup(dtMacroGroup.TableName, pcs.MenuGroup);
            MenuMacro mm = null;
            foreach (System.Data.DataRow r in dtMacroGroup.Rows)
            {
                mm = new MenuMacro(mg, r["name"].ToString(), r["command"].ToString(), r["UID"].ToString(), MacroType.Any);
                mm.macro.HelpString = r["HelpString"].ToString();
                mg.AddMacro(mm);
            }

6. 添加菜单项的设置
            StringCollection sc = new StringCollection();
            sc.Add("POP1");
            PopMenu pm = new PopMenu(dtPopMenu.TableName, sc, dtPopMenu.Namespace, pcs.MenuGroup);
            PopMenuItem pmi = null;

            foreach (DataRow r in dtPopMenu.Rows)
            {             
                // 添加下拉菜单
                if (Convert.ToBoolean( r["IsSeparator"]))
                {
                    pmi = new PopMenuItem(pm);     //用此构造方法,即为分割条            
                    pm.PopMenuItems.Add(pmi);
                }
                else
                {
                    foreach (MenuMacro m in mg.MenuMacros)
                    {
                        if (m.ElementID == r["MenuMacroID"].ToString())
                        {

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值