|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。
. I4 y$ g* U# @+ m; Y% M% i5 x1 Q0 c9 h: p# U/ T
& @" E9 l# p% \& h, v/ P( F在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 # d: f* z: f; Q1 `4 z3 s% ` J& n* {
- {$ J3 a/ r4 _7 ^5 H% T* W
+ b+ z E0 e; s! B新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 ! j: K4 G3 m' |' ^& L( g/ f" u
! q2 K4 P7 Z. n
7 t, S7 C$ X- a) m$ q8 H' ? p: I* L+ }! w7 x) ~7 H7 Q' s
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". - Q* K4 I# t) u
* k7 ]/ T4 p5 A2 `! N
* g5 O% [* ~( kSub Ch6_AddMenuItemToshortcutMenu() . D# Y8 A& z, j7 i4 |. ]1 e
! V* m1 z* C5 C4 `. ~6 G- IDim currMenuGroup As AcadMenuGroup - j7 y$ V o/ x6 e$ \' p9 O* o
" R2 [! e \1 {$ N( ~Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) : a4 ?% ?! Q6 z7 K0 c
* i' g8 ]; j- i7 d
x8 R+ V; c: ~/ X7 n$ f: Y5 J) Q \( X9 k1 x
'找到快捷菜单并赋值它为shortcutMenu变量
' U- \: r! z, S4 ]5 E3 e4 L1 J3 A! ]& S/ X5 P6 t
Dim scMenu As AcadPopupMenu
* l* q6 q/ e& S+ n& |* s9 j& R$ u) a9 @/ E$ W
Dim entry As AcadPopupMenu
: g6 h1 p/ S7 q2 |# x* U1 U# `. ^' X
For Each entry In currMenuGroup.Menus 4 t' ~4 P9 N3 M$ _" E3 E
+ p% ~3 I" U4 a* o. s
If entry.shortcutMenu = True Then ! ~, a) ?3 h) d
; M3 M0 e6 @5 g1 }* y2 RSet scMenu = entry
2 z+ m% g; `$ a5 M) D7 y
; `9 U, S4 n* X. `! iEnd If
7 b6 }* W! L3 j6 o% p8 _9 ^0 e, L* N/ S
Next entry
! ^8 }: T5 v2 O J! y) I( M
+ T& b2 W- o# r% L: y+ G6 @) E/ g
( ^. b9 t) Z$ _6 k! t# b" O0 U# c
3 G; R; a: D1 W5 T* x$ w" C. x3 O' 在快捷菜单中增加菜单项 % w2 g8 B; ]% f& j: f' X' N
7 x- L) `# q& V
Dim newMenuItem As AcadPopupMenuItem
& i7 g6 O4 e& \2 S' U" L" \* L6 q5 w, K
Dim openMacro As String 3 D' R k3 U/ B5 M6 G
- C1 U+ n# E" @& r
' 为宏赋值VBA表达式"ESC ESC _open "
9 }. f+ Z" ^ C6 v" b& T5 Q( ]3 i# L7 c- U+ {( [
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
o3 Z0 B. E- ^; w& [5 Y! H
3 W+ [$ G! q8 M# B$ e- a0 z O2 b, G/ F
Set newMenuItem = scMenu.AddMenuItem _ % c0 t* |* r5 c; n
$ u9 |+ U8 m" ^3 Z- m) X("", Chr(Asc("&")) _
0 u/ Y! @+ _3 {: o
( T5 D% z# ^! F) ?( m# m# @9 P/ Q+ "OpenDWG", openMacro)
5 K: T6 F) M; x0 S& m
6 T; c% n& n7 R/ M; M1 C: U+ dEnd Sub |
|