当前位置:主页CAD应用技巧AutoCAD菜单的开发技术(3)
AutoCAD菜单的开发技术(3)
夜鹰电脑教学网 责任编辑:夜鹰 加入日期:2005-1-3 11:30:00 点击数:
尊重版权、尊重文化、尊重自己:转载本站内容请注明内容作者及教程来源,欢迎内容合作。QQ:5400112
[大字体 中字体 小字体]

关键字:菜单  

四、进一步完善菜单

我们继续对菜单进入完善,包括给菜单项指定快捷键和增加状态栏提示信息,仍然是通过修改菜单文件来完成。前面我们定义的菜单中有一个小毛病没有克服:虽然我们在“直线”菜单项中写出该菜单项的快捷键是“Ctrl+L”,但我们并没有真正为这个菜单项分配任何快捷键。如果我们能把这个小小的Bug也去掉,那我们的菜单就尽善尽美了。

分配快捷键涉及到两个菜单区域:一个是菜单项所在菜单区域,在我们前面的例子中就是定义菜单“绘制”的“***POP12”菜单区域;另一个就是专门定义快捷键的菜单区域“***ACCELERATORS”。为了两个菜单区域可以进行正确的通讯,必须为需要快捷键的“直线”菜单项定义一个唯一而规范的名称,AutoCAD把这个名称叫做“名称标记”。名称标记是将一个菜单项与其它菜单项区别开的唯一标志。名称标记只能是字母和下划线的组合,放在菜单项标签之前,就能把标签作为名称标记,因为标签的命名规则太笼统,而且同一个标签名可以出现在不同的菜单区域当中。为了给菜单项分配快捷键,首先应该给每个菜单项一个有意义而且唯一的菜单标记,现在我们还是以前面的例子为每个菜单项定义菜单标记,其代码如下:

***POP12
 **MyDraw
 ID_MyDraw [绘制]
 ID_MyLine [直线(&L)\tCtrl+L] ^c^c^_line
 ID_MyCircle [->圆] ^c^c_circle
 ID_RFCrl [R50圆] ^c^c_circle \50
 ID_RECrl [<-R80圆] ^c^c_circle \80
 [--]
ID_MyText [~文字] ^c^c_text

接下来,我们为“直线”菜单项分配快捷键。找到“***ACCELERATORS”菜单区域,它通常在菜单样板文件的末尾处,在此区域添加如下字样:

ID_MyLine [CONTROL+"L"]

注意要把这些文字添加在“***ACCELERATORS”区域的第一行。存盘退出文本编辑器,在AutoCAD中执行Menu命令重新载入ACAD.MNU文件,按下Ctrl+L键,AutoCAD开始执行Line命令。这里我们只为直线菜单项定义了快捷键,您完全可以根据需要给其它菜单项定义快捷键。

理解了为菜单项增加快捷键的方法,增加状态栏帮助文本就显得很简单了。在菜单样板文件中有一个菜单区域“***HELPSTRINGS”,这个菜单区域保存了其它菜单项的帮助文本,找到这个菜单区域,在这个菜单区域内添加如下代码。

ID_MyLine [绘制直线]
 ID_RFCrl [绘制一个半径为50的圆]
 ID_RECrl [绘制一个半径为80的圆]

存盘退出文本编辑器,在AutoCAD中执行Menu命令重新载入ACAD.MNU文件,再把光标指向“绘制”菜单中的某个菜单项时,状态栏中就是显示相应的提示信息,如图10所示。

图10

现在我们已经基本建立了一个完整的菜单框架,您是否感觉这个开发过程有些繁琐呢?在冗长的ACAD.MNU文件中查找特定的菜单区域以及菜单样板文件缓慢的编译过程都不是一件很容易的事,下面将介绍一个更简单的方法来开发菜单。

用文本编辑器建立一个文本文件,这个文件将我们在前面开发的所有内容综合在一起,文件内容如下:
***MENUGROUP=MyCAD
 ***POP12
 ID_MyDraw [绘制]
 ID_MyLine [直线(&L)\tCtrl+L] ^c^c^_line
 ID_MyCircle [->圆] ^c^c_circle
 ID_RFCrl [R50圆] ^c^c_circle \50
ID_RECrl [<-R80圆] ^c^c_circle \80
[--]
ID_MyText [~文字] ^c^c_text

***ACCELERATIORS
ID_MyLine [CONTROL+"L"]

***HELPSTRINS
ID_MyDraw [这是一个自定义的绘制菜单]
ID_MyLine [绘制直线]
ID_MyCircle [绘制圆]
ID_RFCrl [绘制一个半径为50的圆]
ID_RECrl [绘制一个半径为80的圆]
ID_MyText [在绘图区插入文字]

将此文件保存在AutoCAD的Support文件夹下,文件名称可以任意命名,我们这里保存为MyCAD.MNU。在AutoCAD中使用Menuload命令打开“菜单自定义”对话框,在“菜单栏”列表中将最下方的“绘制”菜单删除(也就是我们前面开发的菜单),在“菜单组”选项卡中载入MyCAD.MNU文件。在“工具栏”选项卡中插入“绘制”菜单项,单击“关闭”按钮关闭对话框。这时菜单栏中就有了新的“绘制”菜单项,正是我们在MyCAD.MNU文件中建立的。

由Menuload命令调入的菜单称为局部菜单,载入局部菜单时只是将局部菜单中包含的菜单项插入菜单栏中,而不会删除原有的菜单项。当我们想开发新的菜单项时,可以将菜单的有关定义写成一个单独的文件,然后把这个文件作为局部菜单载入即可。

作者:李建华 来源:PConline
上页 1 2 3 下页

■此文章最新评论(不超过十条)
■评论此文章( 有问题请去夜鹰论坛发帖 )
共有评论: 查看全部评论 姓名:
【 声明 】 您所发表的言论将被众多网友阅读,因此,您所发表的言论应不违反中国法律,不违背一般的道德原则,否则,您必须对您的不当言论引发的一切不良后果负责;此外,我们的管理员有权删除您发表的不当言论,谢谢合作!
点击排行

相关教程

本类导航