34.3.1 实例1 创建新的菜单文件“user.mns”
Step 1 定义菜单组
(1) 打开记事本程序,创建一个新的文本文件。
(2) 在文件中输入如下代码。
//
// Sample Menu File
//
**MENUGROUP=USER
即定义该菜单文件属于“USER”菜单组。
Step 2 定义辅助菜单
在上一步骤输入的代码后继续输入如下代码:
***AUX2
// Shift + button
$P0=SHORTCUT $p0=
该代码定义用户在使用Shift+右键时所调用的快捷菜单“SHORTCUT”。
Step 3 定义下拉菜单和快捷菜单
在上一步骤输入的代码后继续输入如下代码:
***POP0
**SHORTCUT
ID_SM [&Sample Menu]
ID_S1 [&Polyline \tCtrl+3]^C^C_pline
ID_S2 [&Array… \tCtrl+4]^C^C_array
[–]
ID_S3 [->Sub Menu]
ID_S31 [Sub Menu1]^C^C
ID_S32 [<-Sub Menu2…]^C^C
[–]
ID_S4 [Image Menu…]$I=USER.IMAGE_MENU $I=USER.*
ID_S5 [~Disable Menu]^C^C
ID_S6 [!.Checked Menu]^C^C
***POP14
**PULL_DOWN
ID_SM [&Sample Menu]
ID_S1 [&Polyline \tCtrl+3]^C^C_pline
ID_S2 [&Array… \tCtrl+4]^C^C_array
[–]
ID_S3 [->Sub Menu]
ID_S31 [Sub Menu1]^C^C
ID_S32 [<-Sub Menu2…]^C^C
[–]
ID_S4 [Image Menu…]$I=USER.IMAGE_MENU $I=USER.*
ID_S5 [~Disable Menu]^C^C
ID_S6 [!.Checked Menu]^C^C
注意 上两部分代码分别定义了快捷菜单“SHORTCUT”和下拉菜单“PULL_DOWN”,这两部分定义的菜单项完全一样,不同之间仅在于菜单名称。
这部分定义的菜单分别给出了菜单的加速键、级联子菜单以及菜单项的显示控制等功能的定义。
Step 4 定义工具栏
在上一步骤输入的代码后继续输入如下代码:
**TOOLBARS
**TB_USER1
ID_TbUser1 [_Toolbar(“User Toolbars1”, _Floating, _Show, 100, 100, 1)]
ID_Pline [_Button(“Polyline”, “ICON_16_PLINE”, “ICON_16_PLINE”)]^C^C_pline
ID_Array [_Button(“Array”, “ICON_16_ARRREC”, “ICON_16_ARRREC”)]^C^C_array
ID_Image [_Button(“Image”, user16.bmp, user32.bmp)]$I=USER.IMAGE_MENU
$I=USER.
**TB_USER2
&n bsp; ID_TbUser2 [_Toolbar(“User Toolbars2”, _Floating, _Show, 200, 100, 1)]
ID_Flyout [_Flyout(“Flyout”, “ICON_16_PLINE”, “ICON_16_PLINE”,
_OtherIcon,USER.TB_USER1)]
[–]
[_Control(_Color)]
[–]
[_Control(_Layer)]
以上代码定义了两个工具栏“TB_USER1”和“TB_USER2”。工具栏“TB_USER1”中包括三个按钮“Polyline”、“Arr
ay”和“Image”,其中“Image”按钮的图标资源为用户创建的两个位图文件“user16.bmp”和“user32.bmp”,并保存在AutoCAD的库搜索路径中。
工具栏“TB_USER2”中引用“TB_USER1”来定义了一个弹出式工具栏,同时还定义了两个控件“Color”和“Layer”。
Step 5 定义图像控件菜单
在上一步骤输入的代码后继续输入如下代码:
***IMAGE
**IMAGE_MENU
[Nut Image]
[user(s1)]^C^C
[user(s2)]^C^C
[user(s3)]^C^C
[user(s4)]^C^C
[user(s5)]^C^C
[user(s6)]^C^C
以上代码定义了一个图像控件菜单,其中所用到的幻灯片和幻灯片库的创建,请参见第31章。由于该定义仅出于演示的目的,因此并没有给出具体的命令序列,用户可根据需要来添加。
Step 6 定义屏幕菜单
在上一步骤输入的代码后继续输入如下代码: < div>r /> ***SCREEN
**S
[Mian Menu]^C^C^P(ai_rootmenus) ^P
[Polyline ]^C^C_pline
[Array… ]^C^C_array
[Sub Menu ]$S=USER.SUBMENU
[Image Menu…]$I=USER.IMAGE_MENU $I=USER.*
**SUBMENU 2
[Prev Menu]$S=
[Sub Menu1]^C^C
[Sub Menu2]^C^C
以上代码定义了带有子菜单的屏幕菜单。
Step 7 定义加速键
在上一步骤输入的代码后继续输入如下代码:
***ACCELERATORS
ID_S1 [CONTROL+”3″]
ID_S2 [CONTROL+”4″]
[“NUMPAD5”]@x^h
[“NUMPAD6”]<0
[“NUMPAD9”]<45
[“NUMPAD8”]<90
[“NUMPAD7”]<135
[“NUMPAD4”]<180
[“NUMPAD1”]<-135
[“NUMPAD2”]<-90
[“NUMPAD3”]<-45
以上代码中除了定义“Pline”命令和“Array”的快捷键以外,还定义了扩展坐标输入,即数字键区作如下修改:5键输入@符号,其他数字键输入小于号(<)和该键位置在数字键区中表示的角度值。这样用户来输入相对极坐标时可利用数字键快速输入,例如极坐标:@50<45,用户只需按数字键区的5键、数字“50&r
dquo;和数字键区的9键即可。
Step 8 定义菜单帮助
在上一步骤输入的代码后继续输入如下代码:
**HELPSTRINGS
ID_S1 [Creates a 2D polyline]
ID_S2 [Creates multiple copies of objects in a pattern]
ID_S31 [The sample 1 for Sub Menu]
ID_S32 [The sample 2 for Sub Menu]
ID_S4 [The sample for Imeage Menu]
ID_S5 [The sample for Disable Menu]
ID_S6 [The sample for Checked Menu]
以上代码给出了每个菜单项相应的提示。
Step 9 保存文件
以“user.mns”为名保存该文件。
说明 AutoCAD命令前加“_”是为了语言的兼容性。
34.3.2 自定义菜单文件的使用
用户编写的菜单文件“USER.MNU”是文本文件。首次使用该菜单文件时,AutoCAD会对其进行编译,编译后生成可被直接使用的二进制菜单文件“USER.MNC”。加载菜单文件的命令如下:
命令行:menu
调用该命令后,系统弹出“Select Menu Fl1e(选择菜单文件)”对话框。在该对话框中,指定打开文件类型为“Menu Template(.MNU)”项,再选择要加载的“US
ER.MNU”文件,结果如图34-4所示。
用户可再次使用“menu”命令,加载AutoCAD主目录“Support”子目录中的“acad.mns”文件来恢复原来的系统菜单。
如果用户希望将自定义的菜单
和原来的系统菜单结合起来使用,则可选择菜单【Tools(工具)】→【Customize(自定义)】→【Menus…(菜单)】,系统弹出“Menu Customization(菜单自定义)”对话框,如图34-5所示。
选择“Menu Groups(菜单组)”选项卡,并单击Browse…按钮选择自定义的“user.mns”菜单文件,然后单击Load…按钮可加载该文件。加载后,在“Menu Groups(菜单组)”列表中将增加用户所定义的菜单组“USER”。
选择“Menu Bar(菜单栏)”选项卡,如图34-6所示。在“Menu Group(菜单组)”下拉列表中选择“USER”项,此时在“Menus(菜单)”列表中将相应地显示出该菜单文件中定义的菜单项“Sample Menu。选择该项后,再选择“Menu Bar(菜单栏)”列表中的“Help(帮助)”项,然后单击Insert>>按钮,将“Sample Menu”菜单插入到“Window(窗口)”和“Help(帮助)”之间。
完成上述设置后,单击Close按钮关闭该对话框使用户定义的菜单生效,结果如图34-7所示。