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_Plot