AutoCAD R14的菜单定制技术
雷立宏 中国建筑科学研究院电子计算中心
1 菜单文件结构及菜单格式
为了保护用户及开发商的既有积累,使产品的过渡较为平缓,又能充分的挖掘Microsoft最新技术的潜力,AutoCAD R14既保留了原有的菜单结构,又对其进行了新的扩展,使得用户和开发商都能充分使用Windows 95/NT平台的图形用户界面(GUI)定制技术对R14的用户界面进行方便的定制。因此,AutoCAD R14菜单不仅包括有原来的各类设备菜单、下拉菜单、光标菜单及屏幕菜单等,还增加并加强了工具条按钮菜单的用户化功能。
1.1 菜单文件结构
根据AutoCAD R14交互界面的不同区域,菜单文件被分为不同节,每一节中包含了许多菜单项。用户可以按自己的需求描述不同节和菜单项,而不一定按照AutoCAD 的菜单文件那样描述所有的节和项。为了实现R14中加载和卸载分部菜单的功能,菜单文件还应包括菜单组名。因此,菜单文件的格式如下:
***MENUGROUP 菜单文件组名,如果用户未写,则以菜单文件全路径名为组名;
***AUXn 系统定点设备按钮菜单(如鼠标键定义);
***POPn下拉菜单或光标菜单;
△***TOOLBARS 工具条按钮菜单;
***IMAGE 图象菜单;
***SCREENn 屏幕菜单;
***TABLETn 数字化仪板菜单;
△***HELPSTRINGS 下拉菜单、光标菜单或工具条按钮的状态行帮助信息;
△***ACCELERATORS 加速键定义;// 注释行。
其中,带"*"的菜单节是R14新增加的内容。
1.2 菜单项格式
R14的菜单项格式为:
name_tag label? menu_macro
名称标识 标签 菜单宏
这个格式对所有的菜单节都是统一的,只是图象菜单项中没有name_tag;而且对于不同的菜单节label的含义也有所不同。其中,name_tag是菜单文件中每个菜单项的唯一标识符,其作用是(1)将下拉菜单和工具条按钮同相应的状态行帮助联系起来;(2)将下拉菜单同其相应加速键联系起来;(3)用于控制菜单项的状态(如可用或不可用);
label是放在[ ]中的显示给用户的有关信息,例如对于TOOLBARS,[ ]中的内容定义了工具条的名称、状态(浮动、隐藏或可见等)、位置及所用的图标等;
menu_macro就是该菜单项或按钮所要执行的动作,可以是AutoCAD命令、AutoLISP程序、ADS/ARX程序等。例如:
***TOOLBARS
**TB_ABD
**ABD
// 定义工具条。
ID_ABD_0 [ _Toolbar("ABD墙体",_Floating, _Show, 400, 50, 1)]
// 定义工具条按钮。
ID_ABD_1 [ _Button("绘制墙体", "ICON.bmp", "ICON0041.bmp")]^C^CABD _WALL:
***HELPSTRINGS
ID_ABD_0 [墙体绘制和编辑.]
ID_ABD_1 [直接绘制双线墙体.]:
如果在菜单源文件中包含以上片段,经过编译调用时,将会出现名为"ABD墙体"的工具条,其中包含一个名为"绘制墙体"按钮。当用户把光标移动到工具条上时,"墙体绘制和编辑。"的帮助信息就出现在窗口的状态行;当用户把光标移动到按钮上时,"直接绘制双线墙体。"的帮助信息就出现在窗口的状态行,同时光标箭头处还有"绘制墙体"的提示。
2 菜单文件组成
要满足用户对菜单定制的新要求,就必须对原有的菜单进行扩充,这不仅表现在菜单结构的变化,还表现在菜单文件组成的变化。R14之前,AutoCAD的菜单原文件为*.MNU,其编译文件为*.MNX;在R14中,*.MNX已不存在,取而代之的是其它几类文件,AutoCAD R14的菜单文件组成如下:
*.MNU AutoCAD R14菜单模板文件(文本格式);
*.MNC AutoCAD R14编译菜单文件(二进制格式);
*.MNS 由AutoCAD R14编译产生的菜单源文件(文本格式);
*.MNR AutoCAD R14菜单中所用的资源文件(二进制格式);
*.MNL 同名菜单加载的AutoLISP程序文件(文本格式);
3 用户菜单文件编制过程
(1)以文本文件方式,按AutoCAD要求的格式编写菜单模板文件*.MNU及其所调用的AutoLISP程序文件*.MNL,如果有工具条菜单,还需同时制作相应的图标文件(小图标16*15点,大图标24*22点);
(2)使用MENU命令编译已经写好的菜单模板文件(选择文件的对话框中的文件类型需要用户自己切换*.MNU),AutoCAD R14将自动生成*.MNC、*.MNS和*.MNR文件;
(3)使用交互方式增加和编辑工具条菜单,AutoCAD R14会自动更新*.MNS文件,如果用户想要保留新增工具条菜单,避免再次编译*.MNU时丢失,就必须手工将*.MNS中的有关内容复制到*.MNU中之后才能使用MENU命令再次编译*.MNU。
4 R14菜单调用的检索顺序
当用户使用交互方式调用菜单,或者使用编程方式调用菜单,AutoCAD R14以如下的文件检索顺序调用菜单:
AutoCAD R14除了能以MENU命令调用菜单,还可以用MENULOAD命令将其它菜单文件中的菜单调入当前图形编辑环境,并且部分或者全部替换当前使用的菜单。在程序中可以使用(MENUCMD)函数和菜单标识来控制菜单的状态。
5 工具条按钮
AutoCAD R14的菜单中大部分内容同原来的菜单相差无几,不再赘述。这里主要介绍工具条的定制方法。
5.1 工具条按钮简介
工具条按钮是Windows系统平台中的一种很方便的交互控制手段,特别是Windows95/NT 4.0平台上,工具条的使用更加灵活和方便,并能由用户快速的进行用户化,从而深受广大Windows系统用户的喜好。AutoCAD R14也充分使用了工具条按钮,并且允许使用多种方法定制工具条。其特点是:(1)定制方便;(2)能显示多种提示和帮助信息
5.2 工具条按钮的定制
(1)直接文件法
用户可以按照R14的菜单文件格式要求,将工具条按钮直接写入菜单模板文件*.MNU中或者菜单原文件*.MNS中,重新编译调用菜单时,工具条按钮将按用户的要求显示出来; (2)交互法
菜单中原先没有工具条按钮时,使用TOOLBAR命令启动工具条管理程序,进行工具条按钮的创建和修改;
菜单中原先已有部分工具条按钮时,只要将鼠标移到任一工具条按钮上按下鼠标右键便可启动工具条管理程序,然后进行工具条按钮属性的修改和编辑。
(3)新建工具条按钮的步骤
启动工具条按钮管理程序;
新建工具条,并输入工具条的有关属性;
在新建的工具条中增加按钮;在新按钮上按"鼠标右键"输入按钮的有关属性;
编辑按钮的图标(ICON)。
6 结束语
AutoCAD R14为用户及开发商提供了一个更为方便的菜单定制机制。特别是工具条按钮菜单的定制技术,使用灵活,定制方便,在应用软件中可以广泛使用。