您的位置:首页 > 其它

autocad的扩展应用---鼠标右键菜单的制作

2015-07-24 09:43 309 查看
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:

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: