|
菜单定义详解 34.2.1 菜单项语法 菜单项由名称标记、标签和菜单宏组成(除了Image部分不答应名称标记)。一个菜单项通常占文件的一行,格式如下: name_tag label menu_macro 其中各项说明如下: (1) name_tag:名称标记用于在菜单文件中唯一地标识一个菜单项,由字母和下划线“_”组成,放置在菜单项标签之前。 (2) label:标签内容包含在方括号中,其格式和用法在每个菜单部分中都有所不同,详细定义详见下面对各菜单部分的介绍。 (3) menu_macro:菜单宏由一系列特别字符构成(见表34-3),用于定义一个命令及其参数系列。 表34-3 菜单宏中使用的特别字符 字符 | 说明 | ; | 产生 ENTER | ^M | 产生 ENTER | ^I | 产生 TAB | SPACEBAR | 输入空格;菜单项中命令序列之间的空格等价于按 SPACEBAR | | 暂停以等候用户输入(不能用在加速键部分) | _ | 转变 AutoCAD 命令及其后的要害字 | + | 延续菜单宏到下一行(假如是最后一个字符) | =* | 显示当前顶层的图像、下拉或快捷菜单 | *^C^C | 重复项的前缀 | $ | 加载菜单部分或输入条件 DIESEL 宏表达式 ($M=) 的特别字符 | ^B | 切换捕获开或关 (CTRL+B) | ^C | 取消命令 (ESC) | ^D | 切换坐标显示开或关 (CTRL+D) | ^E | 设置下一个等轴测平面 (CTRL+E) | ^G | 切换栅格开或关 (CTRL+G) | ^H | 产生退格 | ^O | 切换正交模式开或关 (CTRL+O) | ^P | 切换 MENUECHO 开或关 | ^Q | 回显所有提示、状态列表和打印输入 (CTRL+Q) | ^T | 打开或关闭数字化仪 (CTRL+T) | ^V | 切换当前视口 (CTRL+V) | ^Z | 禁止在菜单项末尾自动增加 SPACEBAR 的空字符 |
例如,某菜单项定义如下: ID_New [&New... Ctrl+N]^C^C_new 其中“ID_New”是名称标记;标签中的“&New... Ctrl+N”给出了在菜单中的显示内容;“^C^C_new”为菜单宏。 34.2.2 菜单组 菜单文件中的菜单组部分用“***MENUGROUP”标签进行标识,该标签定义了菜单组名,即将菜单文件的内容定义为某个组的成员。菜单组定义是一个字符串,最多可包括32个字母数字型的字符(不答应使用空格和标点符号)。例如,“acad.mns”文件中菜单组的定义为: ***MENUGROUP=ACAD 使用菜单组的目的是在使用局部菜单时,将组中的项与其他项区分开来,以进行单独的加载或卸载。因此,该标签必须在使用名称标记机制的菜单部分之前使用。 每个菜单都有自己的菜单组标签。但多个局部菜单可使用一样的名称标记。因此,名称标记只需在定义该标记的菜单文件中唯一。 菜单组部分不包含菜单项。 34.2.3 按钮和辅助菜单 菜单文件中的按钮菜单部分用“***BUTTONSn”标签进行标识,辅助菜单部分用“***AUXn”标签进行标识。这两部分的格式是完全相同的。不同之处在于系统鼠标使用辅助菜单,而其他定点设备(比如,数字化仪或其他输入设备)则使用按钮菜单。所有对辅助菜单的引用都适用于按钮菜单:例如BUTTONS1菜单的功能与AUX1菜单的功能一样。 用户可通过对系统鼠标的操作来调用相应的菜单,详细对应关系如表34-4所示。 表34-4 按钮及相关的菜单部分 键/按钮序列 | 菜单部分 | 单击按钮 | AUX1和BUTTONS1 | SHIFT+单击按钮 | AUX2和BUTTONS2 | CTRL+单击按钮 | AUX3和BUTTONS3 | CTRL+SHIFT+单击按钮 | AUX4和BUTTONS4 |
注重 按钮和辅助部分仅在用作主菜单时有效,而在用作子菜单时被忽略。 34.2.4 下拉菜单和快捷菜单 下拉和快捷菜单都显示为级联菜单(也称为步进菜单或层次菜单)。因此,这些菜单无须菜单区域,即可进行逻辑分组。 菜单文件中的下拉菜单部分用“***POP1”~“***POP499”标签进行标识;而快捷菜单部分用“***POP0”和“***POP500”~“***POP999”进行标识。其中,POP0菜单部分定义缺省的对象捕获快捷菜单,POP500~POP999菜单部分用来定义上下文相关快捷菜单。 每个菜单部分都可拥有一个或多个别名,这些别名由菜单部分标签后的**alias标签定义。AutoCAD通过别名(如**GRIPS)引用上下文菜单并在特定情况下使用它们。 1. 菜单项的定义 下拉菜单项的定义中,标签项包含了该菜单项的菜单栏标题,以及定义菜单和子菜单项。例如在ACAD.MNS文件中的下拉菜单的“**FILE”部分定义如下: ***POP1 **FILE ID_MnFile [&File] ID_New [&New... Ctrl+N]^C^C_new ID_Open [&Open... Ctrl+O]^C^C_open ID_DWG_CLOSE [&Close]^C^C_close ID_PartialOp [$(if,$(eq,$(getvar,fullopen),0),,~)Partia&l Load]^C^C_partiaload [--] ID_Save [&Save Ctrl+S]^C^C_qsave ID_Saveas [Save &As...]^C^C_saveas ID_ETransmit [e&Transmit...]^C^C_etransmit ID_Publish [Publish to &Web...]^C^C_publishtoweb ID_Export [&Export...]^C^C_export [--] ID_PlotSetup [Pa&ge Setup...]^C^C_pagesetup ID_PlotMgr [Plotter &Manager...]^C^C_plottermanager ID_PlotStyMgr [Plot St&yle Manager...]^C^C_stylesmanager ID_Preview [Plot Pre&view]^C^C_preview ID_Print [&Plot... Ctrl+P]^C^C_plot [--] ID_MnDrawing [->Drawing &Utilities] ID_Audit [&Audit]^C^C_audit ID_Recover [&Recover...]^C^C_recover [--] ID_BupdateA [&Update Block Icons]^C^C_blockicon [--] ID_Purge [<-&Purge...]^C^C_purge ID_SendMail [Sen&d...] ID_Props [Drawing Propert&ies...]^C^C_dwgprops [--] ID_MRU [Drawing History] [--] ID_APP_EXIT [E&xit]^C^C_quit 其中,在标签部分除了定义该菜单项的菜单栏标题外,还使用一些特别字符来定义菜单的加速键、级联子菜单以及菜单项的显示控制等。这些特别字符的作用详见表34-5。 表34-5 特别标签字符 字符 | 说明 | -- | 菜单项分隔符(使用时,不能包括任何其他字符)。 | + | 延续宏到下一行(假如是最后一个字符)。 | -> | 指出该项具有子菜单。 | <- | 指出该项是子菜单中的最后一项。 | <-<-... | 指出子菜单中的最后一个下拉菜单项或快捷菜单项,并且结束父菜单。(每个<-结束一级父菜单。) | $( | 假如作为第一个字符,则使下拉菜单或快捷菜单项标签求 DIESEL 字符串宏的值。 | ~ | 指定该菜单项被禁用(变暗)。与该菜单项相关的任何命令都不会产生,并且不能访问它的任何子菜单。 | !. | 给该菜单项打上复选标记。 | & | 直接放在下拉菜单或快捷菜单标签中一个字符之前,把该字符指定为菜单的加速键。例如,S&le 显示为Sample。 | / | 指定下拉菜单或快捷菜单标签的菜单加速键。例如,/aSample显示为“Sample”。 | t | 指定其右边的文字在菜单的右侧显示。 |
2. 菜单的引用 可以用相对和绝对两种方式引用下拉菜单和快捷菜单。相对引用使用菜单组和名称标记,绝对引用使用菜单项在菜单结构中的绝对位置。建议使用前一种方式,因为该方式的动态特性使得不管菜单的当前状态如何,该菜单都能准确地发挥其功能。 在菜单文件中,下拉菜单最多可包含999个菜单项,而光标菜单最多可包含499个菜单项。假如菜单文件中的菜单项超出了这些限制,AutoCAD将忽略多余的项。 34.2.5 工具栏 菜单文件中的工具栏部分用“***TOOLBARS”标签进行标识,该部分定义了工具栏的缺省布局和内容,以及每个菜单所定义工具栏的子菜单。 子菜单定义用“**toolbar-name”进行标识,并可定义别名。引用工具栏的格式为 menugroup.toolbar-name 假如不包括menugroup,则AutoCAD缺省将该工具栏显示在基本菜单中。 在工具栏的定义包括五种不同类型的项。其中分隔条的用法同下拉菜单和快捷菜单,其余四种都以标准的名称标记开始,详细格式如下: 1. 工具栏定义 该项定义了工具栏的特性,其格式为: TAG [Toolbar ("tbarname", orient, visible, xval, yval, rows)] 其中各项说明如下: (1) TAG:名称标记; (2) Toolbar:要害字,表示该行是工具栏定义; (3) tbarname:工具栏的名称。该字符串可包括字母、数字以及连字符“-”和下划线“_”。此名称与别名配合使用,使得可以在程序中引用工具栏。 (4) orient:指定方向的要害字。有效值包括Floating、Top、Bottom、Left和Right,不区分大小写。 (5) visible:指定可见性的要害字。有效值为Show和Hide,不区分大小写。 (6) xval:按像素指定X坐标,即从屏幕左边到工具栏左端的距离。 (7) yval:按像素指定Y坐标,即从屏幕上边到工具栏上端的距离。 (8) rows:指定行数。 例如,在ACAD.MNS文件中工具栏“Draw”的定义如下: ID_TbDraw [_Toolbar("Draw", _Left, _Show, 1, 0, 1)] 2. 按钮定义 该项定义了工具栏中的图标按钮,其格式为: TAG [Button ("btnname", id_small, id_large)]macro 其中各项说明如下: (1) TAG:名称标记; (2) Button:要害字,表示该行是按钮定义; (3) btnname:按钮的名称。该字符串可包括字母、数字以及连字符“-”和下划线“_”。当光标停留在该按钮上时,此字符串显示为工具栏提示。 (4) id_small:小图像资源(16×15位图)的ID字符串。该字符串可包括字母、数字以及连字符“-”和下划线“_”。也可指定一个用户定义的位图。 (5) id_big:大图像资源(24×22位图)的ID字符串。该字符串可包括字母、数字以及连字符“-”和下划线“_”。也可指定一个用户定义的位图。 (6) macro:菜单宏。 例如,在ACAD.MNS文件中“Draw”工具栏的“Line”按钮定义如下: ID_Line [_Button("Line", "ICON_16_LINE", "ICON_16_LINE")]^C^C_line 3. 弹出式工具栏定义 该项定义了弹出式工具栏,其格式为: TAG [Flyout ("flyname", id_small, id_large, icon, alias)]macro 其中各项说明如下: (1) TAG:名称标记; (2) Flyout:要害字,表示该行是弹出式工具栏定义; (3) flyname:弹出控件的名称。该字符串可包括字母、数字以及连字符“-”和下划线“_”。当光标停留在该弹出控件上时,此字符串显示为工具栏提示。 (4) id_small:小图像资源(16×15位图)的ID字符串。该字符串可包括字母、数字以及连字符“-”和下划线“_”。也可指定一个用户定义的位图。 (5) id_big:大图像资源(24×22位图)的ID字符串。该字符串可包括字母、数字以及连字符“-”和下划线“_”。也可指定一个用户定义的位图。 (6) icon:布尔型要害字,用于控制显示自己的图标或显示上一次选定的图标(另一个图标)。有效值为 OwnIcon和OtherIcon,不区分大小写。 (7) alias:对要显示为弹出控件的工具栏的引用。alias指向按标准**aliasname 语法定义的工具栏子菜单。 (8) macro:菜单宏。 例如,在ACAD.MNS文件中“Standard”工具栏的“Zoom”弹出按钮的定义如下: ID_TbZoom [_Flyout("Zoom", ICON_16_ZOOM, ICON_16_ZOOM, _OtherIcon, ACAD.TB_ZOOM)] 4. 控件定义 该项定义了工具栏中的图标按钮,其格式为: TAG [Control (element)] 其中element参数可能的值如下(不区分大小写): (1) _Color:指定颜色控件元素。此元素是一个下拉列表,它提供当前颜色的定义。 (2) _Dimstyle:指定标注样式控件元素。此元素是一个下拉列表,它提供当前标注样式的定义。 (3) _Layer:指定图层控件元素。此元素是一个下拉列表,它提供图形中当前图层的控件。 (4) _Linetype:指定线型控件元素。此元素是一个下拉列表,它提供当前线型的定义。 (5) _Lineweight:指定线宽控件元素。此元素是一个下拉列表,它提供当前线宽的定义。 (6) _PlotStyle:指定打印样式控件元素。此元素是一个下拉列表,它提供当前打印样式的定义。 (7) _Refblkname:指定外部参照名称控件元素。它在编辑模式显示当前外部参照名称。 (8) _UCSManager:指定UCS控件元素。此元素是一个下拉列表,它提供当前UCS的定义。 (9) _View:指定视图控件元素。此元素是一个下拉列表,它提供当前标准三维视图的定义。 (10) _ViewportScale:指定视口缩放比例控件元素。此元素是一个下拉列表,它在布局模式下提供视口缩放比例的定义。 5. 用户定义位图 用户定义的位图可用于代替id_small和id_big图像资源的名称。对于id_small参数,用户定义的位图尺寸必须为16×15(像素),并且必须位于库搜索路径中。对于id_big参数,假如指定的位图不是24×22(像素),则AutoCAD自动缩放到该尺寸。 34.2.6 图像控件菜单 菜单文件中的图像控件菜单部分用“***IMAGE”标签进行标识,该部分定义了带有图像控件的菜单。 图像控件菜单部分可包含多个子菜单,子菜单之间应至少用一个空行进行分隔。每个子菜单的第一行是它的标题,该标题显示为包含该图像的对话框的标签。 图像控件菜单项中不能包含名称标记,而只包含标签和菜单宏。其中标签用来定义滚动列表的文字和图像。可用的图像控件菜单项标签格式及用法如表34-6所示。 表34-6 图像控件菜单项标签格式 标签格式 | 用法 | [sldname] | 幻灯片名sldname显示在列表框中; 幻灯片sldname 显示为图像。 | [sldname,labeltext] | 文字labeltext显示在列表框中; 幻灯片sldname显示为图像。 | [sldlib(sldname)] | 幻灯片名 sldname 显示在列表框中; 幻灯库sldlib中的幻灯片sldname显示为图像。 | [sldlib(sldname,labeltext)] | 文字labeltext显示在列表框中; 幻灯库sldlib中的幻灯片sldname显示为图像。 | [blank] | 当提供空文字(即不提供文字)作图标标签时,则在列表框中显示分隔行,并显示空图像。 | [ labeltext] | 当标签的第一个字符为空格时,在列表框中显示提供的文本labeltext,并且不显示图像。 |
除了不能使用菜单宏重复功能以外,图像控件菜单宏执行的功能与其他菜单宏一样。 例如,在ACAD.MNS文件中的图像控件菜单的“IMAGE_3DOBJECTS”子菜单定义如下,其对应的图像控件菜单如图34-2所示。 ***IMAGE **IMAGE_3DOBJECTS [3D Objects] [acad(Box3d,Box3d)]^C^C_ai_box [acad(Pyramid,Pyramid)]^C^C_ai_pyramid [acad(Wedge,Wedge)]^C^C_ai_wedge [acad(Dome,Dome)]^C^C_ai_dome [acad(Sphere,Sphere)]^C^C_ai_sphere [acad(Cone,Cone)]^C^C_ai_cone [acad(Torus,Torus)]^C^C_ai_torus [acad(Dish,Dish)]^C^C_ai_dish [acad(Mesh,Mesh)]^C^C_ai_mesh AutoCAD按每20个一组显示图像,并用滚动列表包含相关的幻灯片名称或文字,最多可显示19个字符。图像控件子菜单的长度没有限制:假如图像控件子菜单包含的幻灯片超过20个,AutoCAD 将提供“下一个”和“上一个”按钮,用户可用这两个按钮浏览图像。 34.2.7 屏幕菜单 菜单文件中的屏幕菜单部分用“***SCREEN”标签进行标识,该部分定义了屏幕菜单的结构和功能。屏幕菜单中的主屏幕菜单部分标签由字符串“**S”标识。 屏幕菜单的菜单项语法如下: 标签 子菜单标识或菜单宏 例如在ACAD.MNS文件中主屏幕菜单定义如下,其对应的屏幕菜单如图34-3所示。 ***SCREEN **S [AutoCAD ]^C^C^P(ai_rootmenus) ^P [* * * * ]$S=ACAD.OSNAP [FILE ]$S=ACAD.01_FILE [EDIT ]$S=ACAD.02_EDIT [VIEW 1 ]$S=ACAD.03_VIEW1 [VIEW 2 ]$S=ACAD.04_VIEW2 [INSERT ]$S=ACAD.05_INSERT [FORMAT ]$S=ACAD.06_FORMAT [TOOLS 1 ]$S=ACAD.07_TOOLS1 [TOOLS 2 ]$S=ACAD.08_TOOLS2
[DRAW 1 ]$S=ACAD.09_DRAW1 [DRAW 2 ]$S=ACAD.10_DRAW2 [DIMNSION]$S=ACAD.11_DIMENSION [MODIFY1 ]$S=ACAD.12_MODIFY1 [MODIFY2 ]$S=ACAD.13_MODIFY2 [HELP ]$S=ACAD.14_HELP [ASSIST ]$S=ACAD.ASSIST [LAST ]$S=ACAD. 屏幕子菜单的标识如下: **menuname [startnum] 其中各项说明如下: (1) menuname:子菜单名,最多33个字符,可包含字母、数字以及“$”、“-”、“_”等符号。 (2) startnum:可选的整数,用于指定子菜单的开始行。 例如在ACAD.MNS文件中,对应主屏幕菜单中“FILE”项的子菜单定义如下: **01_FILE 3 [New ]^C^C_new [Open ]^C^C_open [Qsave ]^C^C_qsave [Saveas ]^C^C_saveas [Export ]^C^C_export [Config ]^C^C_config [Plot ]^C^C_plot [Audit ]^C^C_audit [Recover ]^C^C_recover [Purge ]^C^C_-purge [Quit ]^C^C_quit 屏幕菜单显示时,将覆盖上一屏幕菜单的项,它所覆盖的项数等于它所包含的菜单项数。假如屏幕菜单所包含的菜单项数超过屏幕上的菜单框数,或者按钮菜单所包含的菜单项数超过可用的按钮数,超出的项将被忽略。注重,菜单文件中的空行也会在屏幕菜单中显示出来,因此可利用空行加长子菜单,使它能覆盖上一菜单。 34.2.8 数字化仪菜单 AutoCAD最多可将数字化仪的四个区域配置为命令输入的菜单区域。在菜单文件中这四个部分的菜单定义分别用“***TABLET1”~“***TABLET4”标签进行标识。 TABLETn 部分中的菜单项语法与其他部分中的菜单项语法一样。对菜单项标签的处理方式与BUTTONSn部分一样。这些标签可用作注释,不会显示。 34.2.9 面向菜单的帮助 菜单文件中的面向菜单的帮助部分用“***HELPSTRINGS”标签进行标识,该部分定义了菜单项描述性信息。当菜单项被选择时,这些信息将出现在状态行上。 帮助字符串部分的语法如下: 名称标记 标签 当某个菜单项突出显示时,AutoCAD在这部分的名称标记中查找对应的项。假如找到了匹配的项,则标签中包含的字符串将显示在状态行中。例如在ACAD.MNS文件中有如下定义: ID_LINE [Creates straight line segments: LINE] 当用户选择绘制直线的菜单项时,状态行中将显示提示:Creates straight line segments: LINE。 34.2.10 加速键 菜单文件中的加速键部分用“***ACCELERATORS”标签进行标识,该部分定义了用户能够在AutoCAD中使用的加速键的作用。 加速键有两种定义方法: 名称标记 标签 其中标签内包括一个或多个组合键,以及括在双引号的单个字符或虚键。例如下列定义分别给出了创建新文件和运行VBA两种操作的加速键: ID_New [CONTROL+"N"] ID_VBARun [ALT+"F8"] 标签 命令序列 其中,标签中包含组合键和击键字符串,后面为相应的命令序列。当系统识别出这一击键序列后,将执行其后面的命令序列。除了反斜杠“”以外,在菜单宏中使用的格式以及特别字符均可用于该命令序列的定义。例如下面定义了切换正交模式开关的加速键: [CONTROL+"L"]^O 在加速键定义中,可以使用的组合键包括Ctrl键和左右Shift键,并分别用字符串“CONTROL”和“SHIFT”来表示。 在加速键定义中,可使用的虚键如表34-7所示,这些键在引用时必须括在引号中。 表34-7 特别虚键的引用与说明 虚键 | 引用形式 | 说明 | F1 键 | F1 | 建议最好不要给F1键分配一个菜单宏,因为此键通常与帮助关联。但可以对这个键使用组合键。 | F2 键 | F2 | 不可修改,此键用于切换文本窗口的状态。 | F3 键 | F3 | 不可修改,此键用于运行OSNAP。 | F4 键 | F4 | 不可修改,此键用于切换TABMODE 开关。 | F5 键 | F5 | 不可修改,此键用于切换ISOPLANE 开关。 | F6 键 | F6 | 不可修改,此键用于切换COORDS 开关。 | F7 键 | F7 | 不可修改,此键用于切换GRIDMODE 开关。 | F8 键 | F8 | 不可修改,此键用于切换ORTHOMODE 开关。 | F9 键 | F9 | 不可修改,此键用于切换SNAPMODE开关。 | F10 键 | F10 | 不可修改,此键用于打开或关闭极轴追踪。 | F11 键 | F11 | 不可修改,此键用于打开或关闭对象捕获追踪。 | F12 键 | F12 | 由用户自定义 | INS 键 | INSERT | 由用户自定义 | DEL 键 | DELETE | 由用户自定义 | ESC 键 | ESCAPE | 建议最好不要给F1键分配一个菜单宏,因为此键通常与Cancel(取消)关联。 对该键使用组合键时,不能给CONTROL+ESCAPE和CONTROL+SHIFT+ESCAPE分配菜单宏,因为这两个序列由 控制。 | 上方向键 | UP | 必须与CONTROL组合键配合使用。 | 下方向键 | DOWN | 必须与CONTROL组合键配合使用。 | 左方向键 | LEFT | 必须与CONTROL组合键配合使用。 | 右方向键 | RIGHT | 必须与CONTROL组合键配合使用。 | 0 键 | NUMPAD0 | 由用户自定义 | 1 键 | NUMPAD1 | 由用户自定义 | 2 键 | NUMPAD2 | 由用户自定义 | 3 键 | NUMPAD3 | 由用户自定义 | 4 键 | NUMPAD4 | 由用户自定义 | 5 键 | NUMPAD5 | 由用户自定义 | 6 键 | NUMPAD6 | 由用户自定义 | 7 键 | NUMPAD7 | 由用户自定义 | 8 键 | NUMPAD8 | 由用户自定义 | 9 键 | NUMPAD9 | 由用户自定义 |
返回类别: AuotoCAD教程 上一教程: 字 体 文 件 下一教程: 菜单文件的类型、结构和使用
您可以阅读与"菜单定义详解"相关的教程: · 自定义菜单文件 · 菜单文件的类型、结构和使用 · 使用菜单与工具栏 · 怎样自己汉化autocad菜单? · AutoCAD菜单的开发技术
|