|
右键菜单或快捷菜单,是包含在AutoCAD基础菜单组中的特殊菜单。这个菜单只在用户按住SHIFT键并点击鼠标右键时才出现。 3 n2 a, R: [' \( m
B M3 Y8 G1 M( |9 n% w0 D* {( e
/ A; m( R: ^& U c在一个基础菜单组中,当一个菜单的ShortcutMenu属性为TRUE时,这个菜单就是快捷菜单。你可以遵循"为一个菜单添加新的菜单项"中列出的步骤为快捷菜单增加菜单项。 8 c$ ?* l* ] H; u, g
- p) e" ?: ~: h0 N4 b& M5 e9 N6 H6 }7 Y, Z! M1 f% j. V4 n- @
新的菜单组可能有也可能没有一个快捷菜单。要想为一个菜单组建立一个快捷菜单,须遵循"建立新菜单"一章中列出的指示,并且要把POP0做为这个新菜单的标签。 . J. z- h$ p8 I* A. a, t
- a8 I) \7 O! R1 c% S" r* _9 D4 h* [* g4 S! g6 |! R. J
( _* Z* ]4 _: p e$ Z& w
以下示例如何在右键菜单的末尾新增菜单项"OpenDWG". # o1 E+ Z( _% y+ w0 J7 j# q5 j
& B V. B( k. P4 d5 b# e8 C+ I4 d* W' x1 ~3 N; X- J1 c- u6 a( l7 l
Sub Ch6_AddMenuItemToshortcutMenu()
( J2 y. d2 |" w" q" w0 G- E% k, }9 ^/ z' h; R6 Q/ {
Dim currMenuGroup As AcadMenuGroup , G8 x* u l& h! E
) N$ g0 [# U5 e6 V( A/ RSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
4 n. S, j5 z/ `& q5 c9 J6 p R! J3 b2 j
6 ]6 l! ]) o7 z" c$ ]+ }
9 X; q/ T9 D: y8 l" ]2 ^# F. T'找到快捷菜单并赋值它为shortcutMenu变量
, L' Q6 Q5 W- p( w$ N" q# X1 s. Y# P& a6 S2 c
Dim scMenu As AcadPopupMenu
" U$ a+ ]8 s7 I1 Q J# L/ o" E6 u* G+ _4 Y4 v+ j! e- k; m
Dim entry As AcadPopupMenu 6 _- w; X! W( m0 h3 Y; z* x
6 b; `2 C7 m) W2 ]( H& g
For Each entry In currMenuGroup.Menus 4 @* Q: m- ]. l, g2 h
" ]3 \2 B% Z8 B0 r, D I( QIf entry.shortcutMenu = True Then
2 k( e2 t: L. R8 E8 N0 C$ `* C# d; }" I" a' [* A
Set scMenu = entry 7 M6 F' k$ i: K6 J7 t* ^
" @5 o6 t* w+ e6 B$ v3 F4 Y
End If - j' t: J. m/ \( K% O! O# J
$ R4 }& }1 |7 ^+ p3 i( u( }
Next entry : N1 Q7 K' }# W; G6 K: E
) N& L$ C, r0 }# h* ]
# l, T% z" w- x, P
) A# Y& s$ ?0 o$ g5 F7 `, x) i
' 在快捷菜单中增加菜单项
H- w; G, C1 ]: O# F7 D: X1 w' b, m7 ^! V$ J, t
Dim newMenuItem As AcadPopupMenuItem 7 ?' C- A2 J2 k- A) l- t
; R) \& v8 X) {/ `Dim openMacro As String
# u/ h( R0 @2 H- d4 S2 W1 q
Y3 C- C9 p2 m' 为宏赋值VBA表达式"ESC ESC _open " : d# z$ H* d8 O s
! `" I5 }4 R3 V$ R+ \0 J3 Z
openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) & L! C. C/ [* P, C
5 R. a7 l! G# K. k+ f8 A7 V& C) w
* h5 }$ u0 m, _+ y! O1 y/ pSet newMenuItem = scMenu.AddMenuItem _ : Z$ u; Z' @- p5 Q% h3 M: C! P/ D2 e: H
P$ n4 L' ~2 o- [' q("", Chr(Asc("&")) _
n5 u8 `. R4 f+ f$ A) C
* b) [- Y, L f* X! c6 N, K+ "OpenDWG", openMacro) & R) E6 K# d# ~
* o* t! w4 f9 _ p" W% eEnd Sub |
|