|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 _/ a. ~9 J1 \5 K
9 F* J t7 ^6 H0 l: O- t! _% {& p9 Z" s
在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 3 O4 j# W2 E2 x& \% U3 j
& P2 ]( _0 s% N9 M0 O
2 S! x& U) c2 P8 V2 {3 D
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。
, E, [* w6 P* e7 @: @9 F
" m1 E* x0 v( H, _ T- s, m: t
6 Z& e8 k9 ?$ t# N( s/ v9 q W& }0 U9 u1 Z$ {8 Z8 m0 v
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". . n; f- U$ R9 c% x$ l8 {
' N N: T" y) P. \ P# B. L
& C q3 ]0 z2 j; s; {0 n) @# oSub Ch6_AddMenuItemToshortcutMenu()
/ H! @& J7 v P
. E" I5 ]/ }; x6 _5 I% v! K) w" \, N: HDim currMenuGroup As AcadMenuGroup
9 T) W0 b1 D8 Z7 z1 Z9 w; I, ]! a* _6 p- T: \ y0 p9 Q" T, u5 n
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) 3 |- ~8 l* B; Z) K
0 k; p3 n$ ^+ q& n- s4 s0 t; S D9 X% c6 l% I$ J
" u: r9 v& a9 r$ @& D" `$ T# G
'找到快捷菜单并赋值它为shortcutMenu变量 1 D( _% q* t0 A* o( ] g' q" G% C
( ^+ [0 o1 B; r3 ^Dim scMenu As AcadPopupMenu
+ X7 Z% s+ x5 U5 ]1 j/ X$ ?$ `/ _# P& x, O2 d5 j# m
Dim entry As AcadPopupMenu / F7 V$ Q& r/ N' [) H6 d2 {
1 y' N* U6 E0 g0 u
For Each entry In currMenuGroup.Menus
2 m! U/ R' j* |0 y' Z( F9 f
* ]: `- [- \ i Y. I+ eIf entry.shortcutMenu = True Then
/ z3 f" y" W1 r$ ?. y$ c
' t! X O- }+ \& q& t: dSet scMenu = entry 6 q5 k2 u; F& b; O
, w4 c' o/ u6 B
End If
+ y1 K: u0 w7 u& B/ {2 l. Q3 w3 a9 v* Q6 R
Next entry # Y9 ?3 M6 W G+ O# D! \/ Q" F) I
& ^1 V! n9 a% l# }4 S
2 s/ [% |0 S& R4 Q- F, X
6 m, |7 F; u+ C; t& N' 在快捷菜单中增加菜单项
: \0 y" ]* {9 R' Q( E( y& V( x4 |- X/ o# Y* ?6 z
Dim newMenuItem As AcadPopupMenuItem / w1 T z9 x, _/ q& y
. `% ]9 W. |- p2 JDim openMacro As String
2 u' Q) q8 G( C' `. m' k2 W
. h" f. Z' B; b' 为宏赋值VBA表达式"ESC ESC _open " O- D- p. ?% [( N `* r1 d# T
7 _) _. J R7 O8 ]* d3 ]' Q6 {9 N& J/ V
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32)
- [+ y7 _+ H8 k9 R: i0 s* J! U- U* t8 ^; S& n. x: p. n
. W/ i5 D' c* V$ q
Set newMenuItem = scMenu.AddMenuItem _
0 B0 H5 {2 x. j' L) f2 k, C2 K% G7 F# L/ |: G
("", Chr(Asc("&")) _
2 q; p5 C) z! q/ q
5 n; ]; V4 c3 u5 p' T. `8 M1 a+ "OpenDWG", openMacro)
1 w5 F: j* f0 M) i" ], _; t" Y0 n) a+ s& @+ ^
End Sub |
|