CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

关于交换和插入下拉式菜单

2024-5-18 19:02| 发布者: admin| 查看: 149| 评论: 0|原作者: admin|来自: AutoCAD

关于交换和插入下拉式菜单

工作空间可以用于控制将在菜单栏上显示哪些下拉菜单。但是,也可以通过编程方法将某个下拉菜单交换为另一个(例如,在用户加载需要其他下拉菜单的应用程序的情况下)。

交换下拉菜单

因为本程序具有级联下拉式菜单,所以几乎不需要交换菜单。此外,交换菜单会降低用户界面的一致性。但是,使用 $ 命令,可以交换下拉菜单和子菜单。另外一种菜单交换涉及相对(或全局)参照。使用这种方法,可以在已知菜单前面插入新菜单,然后删除已知菜单。

为了进行菜单交换,下拉菜单被命名为 P1P16。通过将菜单的标题行替换为 $Pn= 命令,可以更改显示在菜单栏上的标题。可以在任意命令中使用特殊命令 $Pn=*,以强制下拉当前指定给 POPn 别名的菜单,从而提高定点设备移动的灵活性。

以下宏样例会将以名为 MYMENU 的自定义组中名为 new3 的菜单替换位于 P3 的下拉菜单。

$P3=mymenu.new3

按以下方式使用 AutoLISP menucmd 函数同样可以执行该操作:

(menucmd "P3=mymenu.new3")

可以在任意宏中使用 $Pn=* 特殊命令,以强制显示当前指定给区域 POPn 的菜单。

注: 下拉菜单的交换不符合 Microsoft ® 用户界面原则,并且不保证在程序的后续版本中可用。

插入和删除下拉菜单

菜单交换是通过从一个菜单中直接激活另一个菜单来实现的。以下界面元素支持菜单交换:

  • B - 按钮
  • P - 下拉式菜单
  • A - 鼠标按钮
  • I - 图像平铺菜单
  • T - 数字化仪菜单

交换局部菜单的语法如下所示:

$section=customizationgroup.menuname
section

有效部分名称分别为 B1-4、A1-4、P0-16、T1-4

customizationgroup

所需自定义 (CUIx) 文件中的自定义组名

menuname

主标签或别名

应该了解以下问题:

  • 无法从外部自定义文件交换图像平铺菜单。
  • 只能交换相同类型的自定义元素;即,用一个快捷菜单交换另一个快捷菜单、用一个工具栏交换另一个工具栏,等等。试图交换不同类型的菜单会导致无法预料的后果。

可以使用 AutoLISP menucmd 函数,以插入或删除下拉菜单。其语法与用于交换下拉菜单的语法类似,不同之处在于赋值左侧是下拉菜单,新菜单会被插入到该菜单前面。赋值右侧是一个加号 (+),后面带有自定义组名、句点以及菜单的别名,如以下语法所示:

(menucmd "Gcustomizationgroup1.menuname1=+Gcustomizationgroup2.menuname2")

还可以使用 Pn= 语法来插入菜单。以下宏将在 P5 菜单后面插入一个菜单:

$P5=+Gmymenu.new3

可以使用以下方法,通过 AutoLISP 实现相同的宏:

(menucmd "P5=+Gmymenu.new3")

如果使用此方法插入菜单,请记住,并不能保证该菜单如预期的那样插入到 P6 菜单位置。有两个原因可能会导致菜单不在预期的位置。

  • 如果当前菜单栏只有三个菜单,那么在菜单 P5 后面插入一个菜单会导致新菜单位于 P4 位置。
  • 如果用户使用 CUILOAD 命令或者在另一个应用程序插入或删除下拉菜单时插入或删除自定义 (CUIx) 文件,那么菜单编号可能会无法同步。

删除菜单的语法为:

Gcustomizationgroup.menuname=-

通过 AutoLISP 删除菜单时将使用以下语法:

(menucmd "Gcustomizationgroup.menuname=-")

下例演示了如何删除 MyMenu 菜单组的成员菜单 NEW3

$Gmymenu.new3=-"

在 AutoLISP 中,上例将如下所示:

(menucmd "Gmymenu.new3=-")

如您所预期,上述格式比 Pn= 格式更好用,因为它只删除指定的菜单。下例演示了如何删除 P4 位置处的菜单(不管其为何种菜单)。

$P4=-

在 AutoLISP 中,上例将如下所示:

(menucmd "P4=-")
注: 仅使用 Pn 语法作为 AutoLISP menucmd 函数的部分语法。将 $Pn 语法用于宏特定的语句。

控制局部自定义 (CUIx) 文件中的工具栏

通常使用工作空间来显示工具栏。但是,您可以使用 -TOOLBAR 命令显示工具栏。在 “输入工具栏名称或 [全部(ALL)]:”提示下使用以下语法

customizationgroup.toolbaralias

使用此语法,可以访问由 customizationgroup.toolbaralias 标识的工具栏。

如果自定义组保持检出状态,则程序会默认为使用主自定义 (CUIx) 文件。


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-28 16:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部