|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。
& J% V3 g- f3 o$ G0 g; Y/ W. A7 w
8 p' H6 M: r4 {7 T9 l
在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
/ p: i+ O1 F+ ]$ j
% u* P* m2 P/ u, v3 X* h* _6 J; _( X) X
8 v; A, _! S& R; y新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 & P* I7 p+ @' R4 [6 a4 }+ {; w5 |
4 [* X" k& h' D6 K
7 h1 C/ d* r" S r3 n0 m3 Q8 b. q0 Z
+ [- V1 S: d" d( y; R0 K以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". j6 ?# R/ G5 ?7 V# ?
+ A5 D7 J. n9 h( A
) M# C0 F% W1 h) g3 G/ oSub Ch6_AddMenuItemToshortcutMenu()
; u2 p0 Z4 |! i. G& B, t; ?7 x1 w/ ~. u D, ]6 k
Dim currMenuGroup As AcadMenuGroup ) _9 W( k6 a+ L) \: b' f
5 i$ i& z1 b! ^ K& h
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
0 b! i, p7 L( g
" U2 z0 b0 E" h) _
7 y) a# ?* G' Y- T4 [% ^- c1 O3 f* p
4 J. C; G+ |& L) \% H# x5 _'找到快捷菜单并赋值它为shortcutMenu变量
# d4 r% l. F$ Y, p! Z4 J* g& m/ n
2 q: {2 k4 O( M& Z) gDim scMenu As AcadPopupMenu
$ ?$ z; i* X. w9 [! j6 }% e3 v0 u4 }( m! O' @
Dim entry As AcadPopupMenu
1 \! w3 G8 ~; G' O5 r" W: q8 c. l7 B+ b- ^: g1 y+ s
For Each entry In currMenuGroup.Menus / k' |2 k8 h4 z$ m/ ~) L# ?# Z
: X8 c; u; y. ], ZIf entry.shortcutMenu = True Then 4 H L( M; J/ M3 D$ l$ r& _/ J
R% Q- _+ u0 s. i
Set scMenu = entry % s7 H! t" _' o+ U8 c
. c2 m1 n* K: Q9 T% n$ f; {' B# SEnd If 6 h( P* A' a- [+ v; K& A6 X
h# N5 d8 E6 Y% ]. Q5 `Next entry
( D' W7 Q* k+ c! U$ Q& a, o H) q
( ^" Q n! @+ C2 B, g, t% F" D+ e# e! I' ]& U5 t
9 K2 y7 I( v' W
' 在快捷菜单中增加菜单项 6 ?& _$ z" `1 Q# H3 N: J
: A' U7 ^9 ~+ p% z: F
Dim newMenuItem As AcadPopupMenuItem
" Q8 V$ C; c( z# C3 A0 n3 q0 V5 ~2 u7 C' \" o8 B
Dim openMacro As String
" _. d9 b6 o5 }/ t* V
: K) \+ T) a5 \6 f/ r' 为宏赋值VBA表达式"ESC ESC _open " ! e5 h/ w& Z" y' Q0 O2 @
1 P% {( O9 ^, x4 b% C3 ?openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) / p$ ^% ^, I, N# f
3 z$ Q: r. {# K, ~
# C6 P5 S: d6 o/ c2 z& q6 E
Set newMenuItem = scMenu.AddMenuItem _
' G$ t5 {' A1 h3 [* H1 U, D% Q$ A* j! u2 V0 w( f
("", Chr(Asc("&")) _ 8 m: b! ?% G2 I- e1 p
( N* `0 f- b/ N0 J& E9 I0 Y+ "OpenDWG", openMacro)
8 R4 d: t+ u4 k- G4 |: ?2 \
2 `- a! t. c5 |4 B4 t) V* ?3 K/ qEnd Sub |
|