针对AutoCAD、CSCAD,总结了两种加载部分菜单的方式。具体方式如下:
1.C++,使用SDK提供函数加载
可通过acedLoadPartialMenu(文件名称)加载,该方式支持cuix、mnu、mns格式文件的加载。
使用前注意查看是否已加载该菜单,通过acedIsMenuGroupLoaded(菜单名)判断是否已加载该文件。
//卸载菜单
void CUnLoadMenu(CString sName)
{
if (acedIsMenuGroupLoaded(sName))
{
acedUnloadPartialMenu(sName);
}
}
2.LISP,使用LISP加载菜单
(setq MenuGroupName 菜单名)
(defun LoadMenu (/)
(setq MenuFileName 菜单名)
(setq MenuPath (findfile (strcat MenuFileName ".cuix")))
(if (= nil MenuPath)
(progn
(setq MenuPath (findfile (strcat MenuFileName ".mnu")))
(if (= nil MenuPath)
(setq MenuPath (findfile (strcat MenuFileName ".mns")))
)
)
)
(if (not (= nil MenuPath))
(command ".menuload" MenuPath)
)
)
;; 如果菜单未加载,则加载。
(if (null(menugroup MenuGroupName))
(LoadMenu)
)