bool PhdUtility::LoadCadMenu(const CString& strMenuFileName, const CString& strMenuGroupName)
{
CString strFilePath = ZYUtils::GetCurArxDir();
strFilePath += strMenuFileName;
CFileStatus st;
if (!CFile::GetStatus(strFilePath, st))
return false;
if (strMenuGroupName.GetLength() < 1 || strFilePath.GetLength() < 1)
return false;
CString strCmdLoad;
strFilePath.Replace(_T("\\"), _T("\\\\"));
if (_T("") != strMenuGroupName && strFilePath.GetLength() > 0)
{
//加载有组名的菜单文件
strCmdLoad.Format(_T("(if (null (menugroup \"%s\")) (command \"menuload\" \"%s\"))"), strMenuGroupName, strFilePath);
}
else
{
strCmdLoad.Format(_T("(command \"menuload\" \"%s\")"), strFilePath);
}
int erStat = ads_queueexpr((LPTSTR)(LPCTSTR)strCmdLoad);//此函数,相当于程序结束后,给CAD发送一个加载菜单的命令
return true;
}
参数:
strMenuFileName - 输入菜单文件名(.mns .mnu .cuix文件) 因为权限问题最好用cuix文件
strMenuGroupName - 输入菜单组名
只要调用此函数,即可加载上cad菜单;如果菜单文件是.mns或.mnu文件且在c盘下,可能会因为权限原因加载不上,而.cuix文件不会出现这种原因,最好使用.cuix文件。
// 插件菜单文件
//
***MENUGROUP=CNPEPlugin
***POP16
**CNPEPlugin
ID_CNPE_PLUGIN [插件]
ID_TKK [图框]^C^CTKK
ID_TKMAN [图库]^C^CTKMAN
[--]
ID_TYST [生成投影视图]^C^CTYST
ID_HFBS [焊缝标识]^C^CHFBS
ID_XHBZ [序号标注]^C^CXHBZ
ID_MXB [明细表]^C^CMXB
[->坐标点]
ID_SCZBD [生成坐标点]^C^CSCZBD
ID_TJZBD [<-统计坐标点]^C^CTJZBD
[--]
[->绘制]
ID_Hzqt [墙体]^C^CHzqt
ID_Hzdb [底板]^C^CHzdb
ID_Hzgb [钢板]^C^CHzgb
ID_Hzymb [预埋板]^C^CHzymb
[->绘制型钢]
ID_HZDBJG [等边角钢]^C^CHZDBJG
ID_HZBDBJG [不等边角钢]^C^CHZBDBJG
ID_HZGZG [工字钢]^C^CHZGZG
ID_HZCG [<-<-槽钢]^C^CHZCG
ID_HZGK [<-管卡]^C^CHZGK
***TOOLBARS
**TB_CNPEPLUGIN
**插件
ID_TB_ZCPlugin [_Toolbar("插件", _Floating, _Show, 0, 0, 1)]
ID_TKK [_Button("图框", "", "")]^C^CTKK
ID_TKMAN [_Button("图库", "", "")]^C^CTKMAN
[--]
ID_TYST [_Button("生成投影视图", "", "")]^C^CTYST
ID_HFBS [_Button("焊缝标识", "", "")]^C^CHFBS
[--]
ID_XHBZ [_Button("序号标注", "", "")]^C^CXHBZ
ID_MXB [_Button("明细表", "", "")]^C^CMXB
[--]
ID_SCZBD [_Button("生成坐标点", "", "")]^C^CSCZBD
ID_TJZBD [_Button("统计坐标点", "", "")]^C^CTJZBD
[--]
ID_Hzqt [_Button("绘制墙体", "", "")]^C^CHzqt
ID_Hzdb [_Button("绘制底板", "", "")]^C^CHzdb
ID_Hzgb [_Button("绘制钢板", "", "")]^C^CHzgb
ID_Hzymb [_Button("绘制预埋板", "", "")]^C^CHzymb
[--]
ID_HZDBJG [_Button("绘制等边角钢", "", "")]^C^CHZDBJG
ID_HZBDBJG [_Button("绘制不等边角钢", "", "")]^C^CHZBDBJG
ID_HZGZG [_Button("绘制工字钢", "", "")]^C^CHZGZG
ID_HZCG [_Button("绘制槽钢", "", "")]^C^CHZCG
[--]
ID_HZGK [_Button("绘制管卡", "", "")]^C^CHZGK
//
// 插件菜单文件 结束
//
bool PhdUtility::UnloadCadMenu(const CString& strMenuGroupName)
{
CString strCmdLoad;
strCmdLoad.Format(_T("(command \"menuunload\" \"%s\")"), strMenuGroupName);
int erStat = ads_queueexpr((LPTSTR)(LPCTSTR)strCmdLoad);
return true;
}
参数:
strMenuGroupName - 输入菜单组名
直接调用此函数,输入菜单组名就可以卸载该组菜单。