许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  AutoCAD扩展应用:鼠标右键菜单制作教程

AutoCAD扩展应用:鼠标右键菜单制作教程

阅读数 46
点赞 0
article_banner
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Windows;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Client.AutoCad;


[assembly: ExtensionApplication(typeof(Estate.AutoCadCommand.ExtensionApplication))]
namespace Estate.AutoCadCommand
{
    public class ExtensionApplication : Autodesk.AutoCAD.Runtime.IExtensionApplication 
    {

        #region 构造函数 
        /// <summary>
        /// 构造函数
        /// </summary>
        public ExtensionApplication() 
        {
            //ToDo;
        }
        
        #endregion

        #region 继承的方法
        /// <summary>
        /// 初始化加载,系统要初始加载的东西都在这个地方哟
        /// </summary>
        public void Initialize()
        { 
            //加载鼠标右键菜单
            MouseRightMenu mrmenu = new MouseRightMenu();
            mrmenu.AddContextMenu();
 
           
        }
        /// <summary>
        /// 卸载,系统退出时要卸载的东西都在这个地方哟
        /// </summary>
        public void Terminate()
        {
            MouseRightMenu mrmenu = new MouseRightMenu();
            mrmenu.RemoveContextMenu();

        }
        #endregion  
    }
}

 

/***********************鼠标右键类************************************/

 public class MouseRightMenu 
{

        #region 成员变量
        ContextMenuExtension m_ContextMenu; 
        #endregion

        #region 构造函数
        public MouseRightMenu() { }
        #endregion


        #region 添加菜单和卸载菜单
        /// <summary>
        /// 添加菜单        
        /// </summary>
        public void AddContextMenu()
        {
            m_ContextMenu = new ContextMenuExtension();
            // 自定义菜单变量
            m_ContextMenu.Title = CustomVariables.RightMouseMenuName_1;
            Autodesk.AutoCAD.Windows.MenuItem mi_StructurePaletteSet;   // 显示建筑树形结构菜单
            Autodesk.AutoCAD.Windows.MenuItem miAddStructure;   //将图结构添加到树形幢结构
            Autodesk.AutoCAD.Windows.MenuItem miGenerantdRegion;   //将图型生成面域
            Autodesk.AutoCAD.Windows.MenuItem miRoomTypeSetting;   //设置房屋类型

            // 添加菜单
            mi_StructurePaletteSet = new Autodesk.AutoCAD.Windows.MenuItem(CustomVariables.RightMouseMenuName_1_1);
            miAddStructure = new Autodesk.AutoCAD.Windows.MenuItem(CustomVariables.RightMouseMenuName_1_2);
            miGenerantdRegion = new Autodesk.AutoCAD.Windows.MenuItem(CustomVariables.RightMouseMenuName_1_3);
            miRoomTypeSetting = new Autodesk.AutoCAD.Windows.MenuItem(CustomVariables.RightMouseMenuName_1_4); 
            // 加载自定义菜单事件
            mi_StructurePaletteSet.Click += mi_StructurePaletteSet_OnClick;
            miAddStructure.Click += miAddStructure_OnClick;
            miGenerantdRegion.Click += miGenerantdRegion_OnClick;
            miRoomTypeSetting.Click += miRoomTypeSetting_OnClick;
            // 将二级菜单添加到一级菜单中
            m_ContextMenu.MenuItems.Add(mi_StructurePaletteSet);
            m_ContextMenu.MenuItems.Add(miAddStructure);
            m_ContextMenu.MenuItems.Add(miGenerantdRegion);
            m_ContextMenu.MenuItems.Add(miRoomTypeSetting);
            // 将一级菜单添加到默认鼠标菜单中
            Autodesk.AutoCAD.ApplicationServices.Application.AddDefaultContextMenuExtension(m_ContextMenu);
        }

        /// <summary>
        /// 清除菜单
        /// </summary>
        public void RemoveContextMenu()
        {
            if (m_ContextMenu != null)
            {
                Autodesk.AutoCAD.ApplicationServices.Application.RemoveDefaultContextMenuExtension(m_ContextMenu);
                m_ContextMenu = null;
            }
        }
        #endregion

     

     /// <summary>
        ///  显示幢结构
        /// </summary>
        /// <param name="Sender"></param>
        /// <param name="e"></param>
        private void mi_StructurePaletteSet_OnClick(object Sender, EventArgs e)
        { 
             //ToDo: 
        }

        /// <summary>
        ///  添加幢结构节点
        /// </summary>
        /// <param name="Sender"></param>
        /// <param name="e"></param>
        private void miAddStructure_OnClick(object Sender, EventArgs e)
        {  
                //ToDo:

        }
        #endregion 
         
        /// <summary>
        /// g构面
        /// </summary>
        /// <param name="Sender"></param>
        /// <param name="e"></param>
        private void miGenerantdRegion_OnClick(object Sender, EventArgs e)
        {

             //ToDo:
        }
        /// <summary>
        /// 设置房屋类型
        /// </summary>
        /// <param name="Sender"></param>
        /// <param name="e"></param>
        private void miRoomTypeSetting_OnClick(object Sender, EventArgs e)
        {
             //ToDo:

        }

}

转载于:https://www.cnblogs.com/sumkp/p/4672488.html


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空