最初由 mrbean13 发布
[B]tch.mnu中有如下命令行
[o右 下o]^P^C^C(damnu3) ^P
反映到屏幕菜单上点击可循环变换“右下”、“右上”等
其原理是什么?
为什么我修改tch.mnu时一旦移动了该命令行位置就菜单中该命令就失效了,菜单也错位了?.. [/B]
上面这个菜单项每点一次,运行下函数damnu3,所以关键都在那里了。
下面是DAMNU3的代码:

- [FONT=courier new]
- (defun damnu3 ()
- (grtext 21
- (cond ((= 8 _dimzbfx) (setq _dimzbfx 1) "o右XY下o")
- ((= 1 _dimzbfx) (setq _dimzbfx 2) "o左XY下o")
- ((= 2 _dimzbfx) (setq _dimzbfx 3) "o右XY上o")
- ((= 3 _dimzbfx) (setq _dimzbfx 4) "o左XY上o")
- ((= 4 _dimzbfx) (setq _dimzbfx 5) "o右AB下o")
- ((= 5 _dimzbfx) (setq _dimzbfx 6) "o左AB下o")
- ((= 6 _dimzbfx) (setq _dimzbfx 7) "o右AB上o")
- ((= 7 _dimzbfx) (setq _dimzbfx 8) "o左AB上o")
- )
- )
- (princ)
- )
- (defun damnu4 ()
- (grtext 21
- (cond ((= 1 _dimzbfx) "o右XY下o")
- ((= 2 _dimzbfx) "o左XY下o")
- ((= 3 _dimzbfx) "o右XY上o")
- ((= 4 _dimzbfx) "o左XY上o")
- ((= 5 _dimzbfx) "o右AB下o")
- ((= 6 _dimzbfx) "o左AB下o")
- ((= 7 _dimzbfx) "o右AB上o")
- ((= 8 _dimzbfx) "o左AB上o")
- )
- )
- (princ)
- )
- [/FONT]
上面函数是用grtext往菜单上动态写文字的,根据你每次点的不同,变量的_dimzbfx会变,因此菜单内容也变了,上面grtext函数是往菜单第21个位置写,所以,如果你移动了菜单,那么位置肯定就窜了。
朋友们也可以用上面的函数技巧,应用到自己的程序中去。 |