|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 8 R# X+ g) r' S* a8 \# j
+ G. \4 B; [+ u- e. D9 [1 Q# a( r; s' g$ n% S
在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
6 z5 L5 s1 d. C7 y: ~: ?. y7 \/ T! ^9 e9 r0 T+ I
4 p3 E& q: R; r; d2 y8 p新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
5 M' G9 }1 ~$ u
; e) t9 o9 C$ U# |$ k( g! o
% G% e% D H2 w& I9 y! q: d. f! {. P4 ^
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG".
) P! A" K1 D+ \/ C- u& U9 e! t/ [6 k+ {( M2 U+ s( U/ s9 g
$ h# u( Q$ }1 W1 J wSub Ch6_AddMenuItemToshortcutMenu() 8 ~, k# M" q5 |# Z! @
- x% n8 g/ E/ F% H2 BDim currMenuGroup As AcadMenuGroup ! n! [! q$ }! K! B8 Z" L3 W
5 O! g, k3 u: v2 u; B5 b/ G0 l, t4 R' ?Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) ; Q7 U) N& U5 s8 V& R6 M
4 m; S9 w) H9 U0 ^' C- F% }; \. m6 \' p: w# `
& L1 w* {# W) k* a& z/ \! h. q4 E
'找到快捷菜单并赋值它为shortcutMenu变量 / \1 N( i4 G. M# Y& ]1 q
/ ~! H1 a4 y9 g8 WDim scMenu As AcadPopupMenu 4 l1 x+ y( n5 E: Q; p
# i/ R! Y) n0 U8 k* A1 w' f
Dim entry As AcadPopupMenu % p; w' `& M k. Q
9 \3 M. U9 H1 F8 YFor Each entry In currMenuGroup.Menus
: g m0 A* Y$ a( H% M6 B# {4 Q& e; h$ F, b) E3 q
If entry.shortcutMenu = True Then
) I9 e% v+ S1 L9 R. z! J6 P
9 m# b6 n! U0 ~" u: e8 z1 ]$ P2 m; O( s- PSet scMenu = entry J0 H! Z5 g6 t: d8 p$ I7 o
2 ~& s& ]6 @; h4 d
End If 9 O2 T: i4 @% P! v8 e
7 \ h" [8 ~1 q* nNext entry " Q( x$ j0 N# S: u+ i9 F8 y
0 z( c9 Z E5 j4 e& [2 W' D& m& s4 v. ?. V5 w1 w
* R4 d9 h! s5 M( x8 O& r% n
' 在快捷菜单中增加菜单项
; S8 W8 E9 M$ b$ Y( A+ w0 U6 i, j1 C3 }7 B9 p) q/ l
Dim newMenuItem As AcadPopupMenuItem
P v( ~0 g0 @% n* | b
1 E5 L8 M2 h4 C" I, b. DDim openMacro As String
1 p. G% i5 `4 b; L9 g+ f- _0 Y" N# K- x- U( Z' x
' 为宏赋值VBA表达式"ESC ESC _open "
J9 E& s2 u9 g2 g1 ]) R! m, v, P; F. X
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) % n- X" K4 @1 W) F0 {/ u
! e/ g4 R- A2 y5 y/ P- Q
7 [8 c: ]( x$ A
Set newMenuItem = scMenu.AddMenuItem _
/ J( O- _5 k5 M& Y9 b; y+ m j& z$ I+ i3 j( E
("", Chr(Asc("&")) _
9 }8 e3 k5 {+ O$ R! r6 |( z6 y
0 S. Z- O! F7 A2 h3 B8 [+ "OpenDWG", openMacro)
* E0 i T5 K2 P# N* t- x6 L- O' K0 g# K( k- v
End Sub |
|