Solidworks API AddMenu 未显示

问题描述 投票:0回答:1

正在开发一个插件。 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”确实有效。这真的是一个错误,还是我遗漏了一些东西?)

menu solidworks solidworksapi
1个回答
0
投票
    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

© www.soinside.com 2019 - 2024. All rights reserved.