使用与激活子菜单类似的方法,可以激活或取消激活另一个下拉菜单或快捷菜单。这称为引用菜单。
引用下拉菜单或快捷菜单有两种方法:相对引用和绝对引用。相对引用使用自定义组和元素 ID。绝对引用使用菜单项在菜单层次结构中的绝对位置。建议使用相对引用,因为其动态性使得无论菜单的当前状态如何,都能发挥作用。
要基于自定义组和元素 ID 引用下拉菜单项或快捷菜单项,请使用 AutoLISP menucmd 函数。以下语法基于元素 ID 引用菜单项。
(menucmd "Gmenugroup.element_id=value")
下例使用相对引用语法禁用存储在 sample 自定义组中的菜单项 ID_Line。不管菜单项位于菜单中的什么位置,它都能起作用。
(menucmd "Gsample.ID_Line=~")
如果知道主 CUI 文件中的内容,可以使用引用主文件的其他菜单项创建局部 CUI 文件。这样,局部 CUI 文件和特定的基本文件就可以配合使用。
除了引用菜单项之外,用户还可以使用 $Pn=xxx 语法来激活或取消激活菜单项。其格式为:
$Pn.i=xxx
$ 用于加载菜单部分;Pn 用于指定活动的菜单部分(0 到 16 为有效值);i 用于指定菜单项数量;xxx(如果存在)用于指定灰显的或标记字符的字符串。
下例使用 $Pn=xxx 语法,将复选标记添加到 POP7 部分的项 1。
$P7.1=!.
以下样例用 AutoLISP menucmd 函数来引用下拉菜单项或快捷菜单项。由于自定义文件是动态的(通过加载局部 CUI 文件),以下语法在任何情况下都不起作用。
(menucmd "P1.2=~")