|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 ; u% S$ B; ^) A$ q$ q! ?3 r/ E" ~
5 @+ u5 m% I# C. x: q. C, n! p$ r z, B, ]+ r1 y1 E
在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 $ n: U' `9 G: ~# F* X
9 @5 s8 f; e. c7 f/ }% L/ k0 b: }- {7 h0 q1 @3 W9 ~ d8 p, q
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 6 m( \) X8 n0 k B% H# B
( } ~$ P0 I4 C" n. l
7 a2 j# G* Q/ A( Q& }+ K: f5 z6 ]$ z
. h/ h* ]/ O- j5 r& |3 k以下示例如何在右键菜单的末尾新增菜单项"OpenDWG".
# M6 P6 D% d( R
8 r7 \* Y! a$ t; S! I
- K2 h6 J9 r/ t! j6 JSub Ch6_AddMenuItemToshortcutMenu()
" M) d/ V. a! S; O; ]
! p3 G2 v' s( w5 O* T4 {Dim currMenuGroup As AcadMenuGroup
2 a8 P& z/ G& C2 p$ k9 E7 V. W. g0 c3 B' s) R
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) 5 {5 l( ^1 L$ V3 @0 y6 `' h5 N0 ?
) x9 u% M: ~2 w$ d6 L/ l; W. }2 B7 D, q7 A* c/ ?
2 ? c/ U& f, r7 H, W" I' Q2 J; b
'找到快捷菜单并赋值它为shortcutMenu变量 1 `5 q, W4 @( J7 S* i+ t7 K8 m0 F9 L
( t: |% M6 Z6 r g( Z0 q( C! O" z
Dim scMenu As AcadPopupMenu
1 K1 m! h1 @1 D- v/ M* H! u. I6 B/ X% d9 H% Z6 M
Dim entry As AcadPopupMenu
" W. C3 K# K+ Z% U
) p" ^ y9 p( DFor Each entry In currMenuGroup.Menus # y# B5 N1 I3 r! |. b! J
% w$ R9 ]8 g' ]; I1 V4 v5 dIf entry.shortcutMenu = True Then
8 B$ B6 Z. N8 k4 R0 f5 p
+ P2 u& w2 a/ MSet scMenu = entry 6 A2 i# j; b& J1 }3 m6 \0 \
8 N t0 @6 _7 P' V, ^& E
End If
& i3 m0 e# C! N; |
6 I, s* F6 q, P; L( I- \Next entry 0 L' E3 b/ X) E
8 [. C# W$ U* }3 a$ ^
6 Q) D& `. i, `
/ P% c" B" H! h' 在快捷菜单中增加菜单项 & U" Z5 b6 H( m# r' y t
+ I" [( `5 U; P5 A& J; G
Dim newMenuItem As AcadPopupMenuItem / c# H/ w9 \0 Z: y6 _8 T
& Y# w& M/ l6 {& h7 H7 iDim openMacro As String
9 [% ?3 E" H% l' R" q9 y* O
" f, q, }: W! i' 为宏赋值VBA表达式"ESC ESC _open "
) O. b2 j9 X; n* y9 g
4 w& f% R7 p, R' HopenMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) - {; i; g( n* e7 L) n: Q5 a- ~- W
% ?! e, \' Q2 s- r' T4 C1 ~
1 r( P& \; c" T( S3 H; y* v5 ?; |' y) ^Set newMenuItem = scMenu.AddMenuItem _ " c2 _$ w+ P7 B4 t0 }0 }
7 C9 G+ x' [! L' `7 o1 n("", Chr(Asc("&")) _
7 o4 q2 U# T, @; H2 D' X# e c& F8 V. }' d, |" o5 k
+ "OpenDWG", openMacro)
2 n3 _ q% c! H( R; I) }6 G, F7 M$ `/ T0 b4 i7 J
End Sub |
|