My program create a new toolbar and add a toolbar button in it. But the reuslt is:It only create a toolbar with a separator? Can anyone help me to find the reason.thanks!
The program is as follow:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Customization;
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
namespace toolbarS
{
public class ToolbarS
{
CustomizationSection cs;
CustomizationSection entCs;
CustomizationSection[] partials;
int numPartialFiles;
bool entCsLoaded;
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
public ToolbarS()
{
string mainCUIFile = (string)Application.GetSystemVariable("MENUNAME");
mainCUIFile += ".cui";
cs = new CustomizationSection (mainCUIFile);
string entCUIFile = (string)Application.GetSystemVariable("ENTERPRISEMENU");
if (entCUIFile.Equals("."))
entCsLoaded = false;
else
{
entCsLoaded = true;
entCs = new CustomizationSection (entCUIFile);
}
partials = new CustomizationSection [cs.PartialCuiFiles.Count];
int i = 0;
foreach (string filename in cs.PartialCuiFiles)
{
if (File.Exists(filename))
{
partials = new CustomizationSection(filename);
i++;
}
}
numPartialFiles = i;
}
[CommandMethod("savecui")]
public void saveCui()
{
if (cs.IsModified)
cs.Save();
for (int i = 0; i < numPartialFiles; i++)
{
if (partials.IsModified)
partials.Save();
}
if (entCsLoaded && entCs.IsModified)
entCs.Save();
string flname = cs.CUIFileBaseName;
Application.SetSystemVariable("FILEDIA", 0);
Application.DocumentManager.MdiActiveDocument.SendStringToExecute("cuiunload " + flname + " ", false, false, false);
Application.DocumentManager.MdiActiveDocument.SendStringToExecute("cuiload " + flname + " filedia 1 ", false, false, false);
}
[CommandMethod("addtoolbar")]
public void addToolbar()
{
MacroGroup mg = new MacroGroup("shenbo", cs.MenuGroup);
MenuMacro mm= new MenuMacro(mg, "someinfo", "showMessage", "ID_INFO");
mm.macro.SmallImage = @"f:\comp.bmp";
mm.macro.LargeImage = @"f:\comp.bmp";
Toolbar newToolbar = cs.MenuGroup.Toolbars.FindToolbarWithName("MyToolbar");
if (newToolbar != null)
ed.WriteMessage("the toolbar has existed!");
else
{
newToolbar = new Toolbar("MyToolbar", cs.MenuGroup);
newToolbar.ToolbarOrient = ToolbarOrient.floating;
newToolbar.ToolbarVisible = ToolbarVisible.show;
ToolbarButton tbb = new ToolbarButton(newToolbar, -1);
tbb.Name = "testButton";
tbb.MacroID ="ID_INFO";
foreach (Workspace wk in cs.Workspaces)
{
WorkspaceToolbar wkTb = new WorkspaceToolbar(wk, newToolbar);
wk.WorkspaceToolbars.Add(wkTb);
wkTb.Display = 1;
}
saveCui();
}
}
[CommandMethod("showMessage")]
public void showMessage()
{
ed.WriteMessage("ok");
}
}
}