找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6126|回复: 6

[求助] 刚开始学习PROE二次开发求助大神

[复制链接]

4

主题

17

回帖

0

威望

实习生

积分
23
发表于 2015-4-9 19:57 | 显示全部楼层 |阅读模式
我刚开始学习PROE二次开发。按照书上做的向PROE添加菜单例子,为什么注册显示程序已启动,但是却看不到我添加的菜单呢?急求各位大神指点啊!!!

2

主题

7

回帖

0

威望

实习生

积分
10
发表于 2015-4-11 03:44 | 显示全部楼层
上代码
回复

使用道具 举报

4

主题

17

回帖

0

威望

实习生

积分
23
 楼主| 发表于 2015-4-11 09:49 | 显示全部楼层
extern "C" int user_initialize()
{
        ProError err;

        // 信息文件名称
        ProFamilyName MsgFile;
        ProStringToWstring(MsgFile, "Test_Msg.txt");

        // 添加菜单:TestMenu
        err = ProMenubarMenuAdd("TestMenu", "TestMenu", "Help", PRO_B_TRUE, MsgFile);

        // 添加命令和菜单项
        // 测试命令
        uiCmdCmdId cmd_id1;
        err = ProCmdActionAdd("Test", Test, uiCmdPrioDefault, TestAccess,
                PRO_B_FALSE, PRO_B_FALSE, &cmd_id1);
        err = ProMenubarmenuPushbuttonAdd("TestMenu", "Test", "Test", "Test_Help",
                NULL, PRO_B_TRUE, cmd_id1, MsgFile);

        // 显示并输出当前模型的名称
        uiCmdCmdId cmd_id2;
        err = ProCmdActionAdd("ShowCurrModelName", ShowCurrModelName, uiCmdPrioDefault,
                ShowCurrModelName_Access,
                PRO_B_FALSE, PRO_B_FALSE, &cmd_id2);
        err = ProMenubarmenuPushbuttonAdd("TestMenu", "ShowCurrModelName", "ShowCurrModelName",
                "ShowCurrModelName_Help", NULL, PRO_B_TRUE, cmd_id2, MsgFile);

        return 0;
}

// Pro/TOOLKIT结束时调用的函数
extern "C" void user_terminate()
{     
}

// 测试命令响应函数
int Test(uiCmdCmdId  command,
                 uiCmdValue *p_value,
                 void       *p_push_command_data)
{
        AfxMessageBox(_T("Just For Test"));
        return 0;
}

// 命令:获取当前模型的名称并显示
int ShowCurrModelName(uiCmdCmdId  command,
                                          uiCmdValue *p_value,
                                          void       *p_push_command_data)
{
        ProError err;

        // 获取当前模型
        ProMdl mdl;
        err = ProMdlCurrentGet(&mdl);
        if (PRO_TK_NO_ERROR != err)
        {
                return -1;
        }

        // 获取当前模型名称并显示
        ProName name;
        err = ProMdlNameGet(mdl, name);
        MessageBoxW(NULL, name, L"wf5 test", MB_OK);

        return 0;
}

// 测试命令 菜单权限函数
// 任何情况下菜单都有效
uiCmdAccessState TestAccess(uiCmdAccessMode access_mode)
{
        return ACCESS_AVAILABLE;
        /*
        ProError err;
        ProMode  mode;

        err = ProModeCurrentGet(&mode);
        if (err != PRO_TK_NO_ERROR)
        {
        return ACCESS_UNAVAILABLE;
        }

        if (mode == PRO_MODE_PART
        || mode == PRO_MODE_ASSEMBLY)
        {
        return ACCESS_AVAILABLE;
        }
        else
        {
        return ACCESS_UNAVAILABLE;
        }
        */
}

// 获取当前模型名称并显示 菜单权限函数
// 只有在当前打开的模型为PART档,ASM档或Drawing档时菜单才有效
uiCmdAccessState ShowCurrModelName_Access(uiCmdAccessMode access_mode)
{
        ProError err;
        ProMode  mode;

        err = ProModeCurrentGet(&mode);
        if (PRO_TK_NO_ERROR != err)
        {
                return ACCESS_UNAVAILABLE;
        }

        if (mode == PRO_MODE_PART
                || mode == PRO_MODE_ASSEMBLY
                || mode == PRO_MODE_DRAWING)
        {
                return ACCESS_AVAILABLE;
        }
        else
        {
                return ACCESS_UNAVAILABLE;
        }
}
这是代码
在Pro/E的【帮助】菜单后新增一个菜单【TestMenu】,然后在【TestMenu】下新增两个菜单项【Test】和【ShowCurrModelName】。分别实现弹出测试对话框和获取当前模型的名称并弹窗显示。
回复

使用道具 举报

6

主题

111

回帖

-1

威望

助工

积分
124
QQ
发表于 2015-4-13 10:10 | 显示全部楼层
你检查一下信息文件,然后上一下错误截图再有这个函数TestAccess不是任何情况都有效是在零件和asm下有效
我思故我存在
回复

使用道具 举报

9

主题

47

回帖

0

威望

助工

积分
61
QQ
发表于 2015-4-13 13:40 | 显示全部楼层
几点零的版本?
回复

使用道具 举报

4

主题

17

回帖

0

威望

实习生

积分
23
 楼主| 发表于 2015-4-14 12:02 | 显示全部楼层
wildfire4.0版本
我是拿书里的例子做测试的,这个事什么意思
QQ图片20150410171546.png
回复

使用道具 举报

0

主题

62

回帖

0

威望

助工

积分
63
发表于 2015-4-16 14:45 | 显示全部楼层
代码好迷幻,我要学会它
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请发邮件联系我们,本站将立即改正或删除。

手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号|站长QQ28016688

GMT+8, 2024-11-22 17:41 , Processed in 0.139655 second(s), 25 queries .

快速回复 返回顶部 返回列表