正在开发一个插件。 Solidwokrs api 文档制作得非常糟糕。 几乎在 YouTube 上看过所有关于此事的视频。
简单的事情对我不起作用,不明白为什么。 尝试向酒吧添加菜单。
public bool ConnectToSW(object ThisSW, int Cookie)
{
SwApp = (SldWorks)ThisSW;
var a = SwApp.AddMenu((int)swDocumentTypes_e.swDocPART, "MyMenu", 0);
var b = SwApp.AddMenuItem5((int)swDocumentTypes_e.swDocPART, cook, "MyMenu@Tools", 1, "MyMenuCallback", "MyMenuEnableMethod", "My menu item", null);
return true;
}
菜单未显示。 我确实可以访问其他功能。
CommandGroup 正在运行,但我只需要一个菜单。
ICommandManager icmd = SwApp.GetCommandManager(cook);
ICommandGroup cmdGroup;
cmdGroup = icmd.CreateCommandGroup(1, "test", "tool test", "bla la", 0);
icmd.AddContextMenu(0, "new");
int menuToolbarOption = (int)(swCommandItemType_e.swMenuItem | swCommandItemType_e.swToolbarItem);
cmdGroup.AddCommandItem2("CreateCube", -1, "Create a cube", "Create cube", 0, "CreateCube", "", 0, menuToolbarOption);
cmdGroup.HasToolbar = true;
cmdGroup.HasMenu = true;
cmdGroup.Activate();
请指教。 谢谢
(在万维网上发现一个帖子,“AddMenuItem5”可能有一个错误,而“AddMenuItem4”确实有效。这真的是一个错误,还是我遗漏了一些东西?)
public bool ConnectToSW(object ThisSW, int cookie)
{
iSwApp = (ISldWorks)ThisSW;
addinID = cookie;
//Set up callbacks
iSwApp.SetAddinCallbackInfo2(0, this, addinID);
string[] c=new string[1];
var a = SwApp.AddMenu((int)swDocumentTypes_e.swDocPART, "MyMenu", 0);
var b = SwApp.AddMenuItem5((int)swDocumentTypes_e.swDocPART, cook, "Tools@MyMenu", 1, "MyMenuCallback", "MyMenuEnableMethod", "My menu item", c);
return true;
}
使用 & 符号包含加速键,例如 MyItem@,使用加速键将 MyItem 添加到文件菜单。要显示加速键,请按 Alt 键。加速键有下划线。
对于最后一个参数,您需要传入一个字符串数组。
这是API:AddMenuItem5