autocad的扩展应用---鼠标右键菜单的制作
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: } }