|
楼主 |
发表于 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】。分别实现弹出测试对话框和获取当前模型的名称并弹窗显示。 |
|