|
|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 * ~- E2 _" u" Q! M. t; }9 m$ N
[6 A2 f! A' J7 X6 d; D# s, G
2 o' a3 _) ?* h) ]5 t
在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。
6 Y' y6 J/ _* k
* H7 \4 l% s4 ~1 H( R+ V6 h+ x8 x3 N' ^& s8 W0 ^4 h
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
) U; `! Z, M" D0 S4 d z8 H! o- a: y* U8 ]$ x1 T
: w- Y2 s! `2 o- H1 u: }5 e- m9 ~
3 I* E9 I0 r( n2 L以下示例如何在右键菜单的末尾新增菜单项"OpenDWG".
7 i, K2 ^- U( z/ B3 c2 a$ @: d% n4 B8 a
1 P2 ~* C: F1 S2 k7 Z% \7 a! tSub Ch6_AddMenuItemToshortcutMenu()
% z! o1 T% Y8 m, B' ?
& F* {+ z1 v5 R `$ b) |Dim currMenuGroup As AcadMenuGroup w1 l/ ?, {- i/ a( X
G4 O+ u" ^) Y, [Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
+ i: ^) j. k* y
( o9 X1 w" _0 y4 s0 u6 R5 v k+ t% m! L) k: M) S! U+ T2 X
+ C4 G$ |' I% _# I- p! r3 _; c+ O'找到快捷菜单并赋值它为shortcutMenu变量
( C+ T; J5 _- R# p$ ]0 n7 ]# @$ [) p I( z5 R* n* w$ k
Dim scMenu As AcadPopupMenu 5 P: `$ g+ K3 r9 S9 [
& T% f+ c( l9 c0 T" H; ]
Dim entry As AcadPopupMenu 9 H. u9 |( R! b; B) I2 c* w) A+ @
0 A6 f7 J1 w% X5 uFor Each entry In currMenuGroup.Menus 4 t) t+ [) Y) l- H5 Y
/ c$ A& q% p I( f0 @! i, H
If entry.shortcutMenu = True Then + N9 i( S# U# [! w
& Y( U- e) c8 G f8 K
Set scMenu = entry % M6 L9 I9 A( T5 D) D( Z& l
3 g8 p) @$ H. ?: C' T- p) FEnd If # H/ ]- V" w9 f# x- s! r# b
8 ?% A& r5 W$ j3 v: {" E. g5 UNext entry
- h: E5 E' F$ R; Q4 l
: r' x* T, Y. e/ X i" d8 ~/ o" c5 M5 ~$ h$ p4 y5 x# o
# V3 f& l% O3 H# ~' 在快捷菜单中增加菜单项 ( H6 B8 F6 y5 l
1 N" i7 N5 H5 }
Dim newMenuItem As AcadPopupMenuItem
, N8 j' k# B/ L8 i2 s: a4 t* j" s8 _7 G+ e* ~+ \
Dim openMacro As String 4 |) D! W$ |: L2 h2 B$ A
, f$ _" k; a R$ o @; K' 为宏赋值VBA表达式"ESC ESC _open "
9 D ?$ ~/ @; h Q* s: g& W0 P2 l8 s1 r& u7 y9 O) D
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) + O r$ g, m% A0 r' `
$ ^) |+ m) Z7 Y4 ?
8 w( }; v& j3 c9 Q% D* |Set newMenuItem = scMenu.AddMenuItem _
2 w# a) m( C$ H k) a" @( Z# [( H0 K* x! S% B: j
("", Chr(Asc("&")) _ 9 r! ^$ h" }: F0 `2 K4 \' p
8 `- i3 h1 L- R/ G$ D8 E# d' ^
+ "OpenDWG", openMacro)
( I1 c" ]) A/ m/ |& i. u9 E) X; Y+ D% d' c# o+ h2 s% t P! t) j0 |
End Sub |
|