autocad的扩展应用---鼠标右键菜单的制作
2010-05-06 14:15
357 查看
在autocad中的一些扩展应用,比如在启动autocad平台时希望首先加载部分自己添加的应用,像鼠标右键菜单等,这里需要继承Autodesk.AutoCAD.Runtime.IExtensionApplication 类,如代码:
/**
* FileName: ExtensionApplication .CS
* File Created: 2010-4-9 15:26
* Description: 鼠标右键菜单
* Purpose :
* History:
* Creator : 成吉思汗
* */
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:
}
}
效果图形如下:
/**
* FileName: ExtensionApplication .CS
* File Created: 2010-4-9 15:26
* Description: 鼠标右键菜单
* Purpose :
* History:
* Creator : 成吉思汗
* */
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:
}
}
效果图形如下:
相关文章推荐
- autocad的扩展应用---鼠标右键菜单的制作
- 制作安装程序时鼠标右键菜单
- Java程序员必看--扩展鼠标右键菜单功能
- 禁止鼠标右键菜单、鼠标右键菜单制作插件;
- 鼠标右键菜单添加应用快捷方式
- 调用.NET库,制作鼠标右键弹出菜单
- 禁止鼠标右键菜单,自己制作右键菜单
- Java程序员必看--扩展鼠标右键菜单功能
- Java程序员必看--扩展鼠标右键菜单功能
- ubuntu14.04,如何使用鼠标右键菜单在shell中打开选择项目?
- jquery事件机制扩展插件,jquery鼠标右键事件。
- jquery事件机制扩展插件 jquery鼠标右键事件。
- OpenLayers 3 之 加入地图鼠标右键菜单
- Ubuntu14.04添加鼠标右键new_empty_file菜单
- 晨曦之光 QT 创建鼠标右键菜单
- 在鼠标右键菜单里加入注册/卸载控件选项
- 上接扩展GridView控件(9) - 给数据行增加右键菜单
- 在WPF里面获取右键弹出菜单(ContextMenu)的鼠标点击源(Owner)控件
- 鼠标右键新建菜单删除或添加项目
- 实现单击鼠标右键,跳出菜单