创建部分菜单并在用户单击菜单时加载 dll。
嗨,我有个问题
我正在使用AutoCAD 2013和C#
我需要在Autocad2013中的帮助菜单之后创建一个菜单。
例如,顶部菜单名称:NDRAL
子菜单1:空布局
子模块2:检查ID
1。当用户单击空布局时,然后调用“emptylayout.dll”
2。此外,单击检查ID,然后调用”checkid.dll“
我在Kean代码的帮助下尝试了此代码。我在添加菜单方面没有问题。但单击事件不起作用。我不知道如何在“菜单宏”代码中添加dll名称。我想在这方面需要修改<br>菜单宏mm1=新菜单宏(mg,“Cmd 1”,“C^CCmd1”,“ID_MyCmd1”)
MenuMacro mm2=新的MenuMacro(mg,“Cmd 2”,“C^CCmd2”,“ID_MyCmd2”)
公共void BuildMenuCUI()
{
常量字符串myCuiFile=“c:\\thenndral.cuix”
常量字符串myCuiFileToSend=“c:\\thenndral.cuix”
常量字符串myCuiSectionName=“Thenndral”
编辑器ed=
Application.DocumentManager.MdiActiveDocument.Editor
字符串mainCui=
应用程序。GetSystemVariable(“MENUNAME”)+“.cuix”
自定义部分cs=
新自定义部分(mainCui)
partialguifilecollection pcfc=cs.partialguifile
如果(pcfc.Contains(mycuibile))
{
ed.WriteMessage(“自定义文件\”+myCuiFile+“\”已加载)
}
否则{
如果(System.IO.File.Exists(myCuiFile))
{
ed.WriteMessage(“自定义文件\”+myCuiFile+“\”存在-正在加载它。”)
加载MyCui(myCuiFileToSend)
}
其他
{
ed.WriteMessage(“自定义文件\”+myCuiFile+“\”不存在-正在构建它。”)
//为我们的部分菜单创建一个自定义部分。
CustomizationSection pcs=new customization section()
pcs.MenuGroupName=myCuiSectionName
//让我们添加一个菜单组,包含两个命令。
宏组mg=新宏组(myCuiSectionName,pcs.MenuGroup)
MenuMacro mm1=新的菜单(mg,“Cmd 1”,“CCmd1”,“ID_MyCmd1”)
MenuMacro mm2=新的菜单(mg,“Cmd 2”,“CCmd2”,“ID_MyCmd2”)
//现在,我们添加一个下拉菜单,其中包含两个项。
StringCollection sc=new-stringcolcollection()
sc.Add(“POP15”)
PopMenu pm=新的PopMenu(myCuiSectionName,sc,“ID_MyPop1”,pcs.MenuGroup)
PopMenuItem pmi1=新的popmeniutem(mm1,“空布局”,pm,-1)
PopMenuItem pmi2=新的popmeniutem(mm2,“检查ID”,pm,-1)
//最后,我们保存文件并加载它。
pcs.SaveAs(mycuibile)
加载MyCui(myCuiFileToSend)
}
}
}
私有void LoadMyCui(字符串CUI文件)
{
Document doc=Application.DocumentManager.MdiActiveDocument
对象oldCmdEcho=Application.GetSystemVariable(“CMDECHO”)
对象oldFileDia=Application.GetSystemVariable(“FILEDIA”)
应用程序。SetSystemVariable(“CMDECHO”,0)
应用程序。SetSystemVariable(“FILEDIA”,0)
doc.SendStringToExecute(“_.cuiload”+cuibile+”,false,false,false)
文档。SendStringToExecute(“((setvar\“FILEDIA\”+oldFileDia.ToString()+”)(princ)”,false,false,false)
文档。SendStringToExecute(“((setvar\“CMDECHO\”+oldCmdEcho.ToString()+”)(princ)”,false,false,false)
}
参考链接:
http://through-the-interface.typepad.com/through_the_interface/2007/05/creating_a_part.html
这是一个很好的例子http://www.theswamp.org/index.php?topic=16024.msg194243#msg194243
能否请您建议我解决这个过程或其他解决方案,以创建部分菜单也感谢
提前感谢,
ndral
编辑:kdub=>code=csharp格式化
**** Hidden Message ***** 嗨,
完成了。谢谢Ajilal.Vijayan。也许它会对某人有所帮助。
在 NETLOAD 之后,您的 dll 文件名和 dll 命令名称。
确保 dll 文件路径位于 autocad 搜索路径内。
修改代码:
new MenuMacro(mg, "Cmd 1", "^C^C._NETLOAD;MYDLL;MYCOMMAND", "ID_MyCmd1");
谢谢
页:
[1]